Saltar al contenido

Expansión polinomial del operador

Te damos la bienvenida a nuestro espacio, en este lugar vas a hallar la solucíon a lo que necesitas.

Solución:

Definir

L = (1/2) (D[#, x] + D[#, y]) &

Vemos eso L funciona como se desea. Por ejemplo:

Simplify[Nest[L, f[x, y], 3]]
(* (Derivative[0, 3][f][x, y] + 3*Derivative[1, 2][f][x, y] + 3*Derivative[2, 1][f][x, y] +
   Derivative[3, 0][f][x, y])/8 *)

Y el Sum puede construirse de manera similar. Por ejemplo:

Simplify[Sum[Nest[L, f[x, y], n], n, 0, 3]]
(* (8*f[x, y] + 4*Derivative[0, 1][f][x, y] + 2*Derivative[0, 2][f][x, y] +
    Derivative[0, 3][f][x, y] + 4*Derivative[1, 0][f][x, y] + 
    4*Derivative[1, 1][f][x, y] + 3*Derivative[1, 2][f][x, y] + 2*Derivative[2, 0][f][x, y] +
    3*Derivative[2, 1][f][x, y] + Derivative[3, 0][f][x, y])/8 *)

Actualizar

Como señaló amablemente @b.gates… en el comentario a continuación, el cálculo del resultado final se puede simplificar con NestList. (¡Gracias!)

Simplify[Total[NestList[L, f[x, y], 3]]]

Aquí hay una función makeOperator que toma cualquier polinomio junto con una regla de reemplazo que asigna la variable deseada al operador deseado. Muestra el resultado como un nuevo operador:

Clear[makeOperator]; 
makeOperator[poly_, Rule[x_, op_]] /; PolynomialQ[poly, x] := 
 Module[f,
  Function[#1, #2] & @@ f, Expand[poly] /. 
   Power[x, n_: 1] :> Nest[op, f, n]]

Defino operadores usando Function. Ya que eso tiene attribute HoldAlllos reemplazos necesarios en el polinomio deben hacerse fuera del Function cuerpo, y se inyectan después usando Apply (@@). El patrón Power[x, n_: 1] detecta potencias de la variable (incluidas las primeras potencias) y las reemplaza por Nest. Expand se asegura de que el polinomio esté en forma canónica antes de hacer los reemplazos, en particular elimina los paréntesis como $x(x+c)$.

Aquí hay una prueba con el operador. L en la pregunta, y un polinomio de Hermite:

Clear[x, y];
L = Function[f, D[f, x] + D[f, y]];

hp = HermiteH[5, x]

(* ==> 120 x - 160 x^3 + 32 x^5 *)

hpOp = makeOperator[hp, x -> L];

hpOp[ψ[x, y]]

$$120 left(fracparcial psi parcial x+fracparcial psi parcial yright)\ -160 left(3 fracparcial ^3 psi parcial x^2, parcial y+3 fracparcial ^3psi parcial x, parcial y^2+fracparcial ^3psi parcial x^3+fracparcial ^3psi parcial y^3right)\+32 left(5 fracparcial ^5psi parcial x ^4, parcial y+10 fracparcial ^5psi parcial x^3, parcial y^2+10 fracparcial ^5psi parcial x ^2, parcial y^3+5 fracparcial ^5psi parcial x, parcial y^4+fracparcial ^5psi parcial x^ 5+fracparcial ^5psi parcial y^5right)$$

Aquí puedes ver las comentarios y valoraciones de los lectores

Si posees algún titubeo y forma de mejorar nuestro sección puedes añadir una ilustración y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *