Parece que el CAS todavía no está muy avanzado en la resolución de algunos problemas básicos de EDP que podemos resolver fácilmente a mano. Estos son algunos problemas de HW, de libros de texto, que pueden ser resueltos a mano pero no con Mathematica en este momento. Usando 11.1.1.
ClearAll[u,t,k,x,L,a];
pde=D[u[x,t],t]==k D[u[x,t],{x,2}]-a u[x,t];
bc={u[0,t]==0,u[L,t]==0}
ic=u[x,0]==f[x];
NumericQ[L]=True;
sol=DSolve[{pde,bc,ic},u[x,t],{x,t}]
parte (c)
ClearAll[u,t,k,x,L,H,g];
pde=D[u[x,y],{x,2}]+D[u[x,y],{y,2}]==0;
bc={Derivative[1,0][u][0,y]==0,u[L,y]==g[y],u[x,0]==0,u[x,H]==0};
sol=DSolve[{pde,bc},u[x,y],{x,y},Assumptions->{0<=x<=L&&0<=y<=H}]
parte (d)
ClearAll[u,t,k,x,L,H,g,f];
pde=D[u[x,y],{x,2}]+D[u[x,y],{y,2}]==0;
bc={u[0,y]==0,u[L,y]==0,Derivative[0,1][u][x,0]==0,u[x,H]==0};
sol=DSolve[{pde,bc},u[x,y],{x,y},Assumptions->{0<=x<=L&&0<=y<=H}]
parte (e)
ClearAll[u,t,k,x,L,H,g,f];
pde=D[u[x,y],{x,2}]+D[u[x,y],{y,2}]==0;
bc={u[0,y]==0,u[L,y]==0,u[x,0]-Derivative[0,1][u][x,0]==0,u[x,H]==f[x]};
sol=DSolve[{pde,bc},u[x,y],{x,y},Assumptions->{0<=x<=L&&0<=y<=H}]
parte (c)
ClearAll[u,theta,r];
pde=D[u[r,theta],{r,2}]+1/r D[u[r,theta],r]1/r^2 D[u[r,theta],{theta,2}]==0;
bc={ Derivative[1, 0][u][1, theta] == f[theta],u[r,Pi/2] == 0,u[r,0]==0};
sol=DSolve[{pde,bc},u[r,theta],{r,theta},Assumptions->{0<=r<=1&& 0<=theta<=Pi/2}]
parte (b)
ClearAll[u,theta,r];
pde=D[u[r,theta],{r,2}]+1/r D[u[r,theta],r]1/r^2 D[u[r,theta],{theta,2}]==0;
bc={Derivative[1,0][u][a,theta]==0,u[b,theta]==g[theta]};
sol=DSolve[{pde,bc},u[r,theta],{r,theta},Assumptions->a<r<=b]
ClearAll[u,t,x,L,c];
pde=D[u[x,t],{t,2}]==c^2 D[u[x,t],{x,2}]
bc={u[0,t]==0,u[L,t]==0};
sol=DSolve[{pde,bc},u[x,t],{x,t},Assumptions->{L>0}]
ClearAll[u,t,x,L,c,f];
pde=D[u[x,t],{t,2}]==c^2 D[u[x,t],{x,2}]
bc={u[0,t]==0,Derivative[1,0][u][L,t]==0};
ic={Derivative[0,1][u][x,0]==0,u[x,0]==f[x]};
sol=DSolve[{pde,bc,ic},u[x,t],{x,t},Assumptions->{0<=x<=L}]
ClearAll[u,t,x,L,c,f,k];
pde=D[u[x,t],t]==k D[u[x,t],{x,2}]
bc={u[0,t]==u[2 L,t],Derivative[1,0][u][0,t]==Derivative[1,0][u][2 L,t]};
ic={u[x,0]==f[x]};
sol=DSolve[{pde,bc,ic},u[x,t],{x,t},Assumptions->{0<=x<=2 L}]
ClearAll[u,t,x,c];
pde=D[u[x,t],{t,2}]==c^2 D[u[x,t],{x,2}]
bc={u[0,t]==0,u[Pi,t]==0};
ic={u[x,0]==0,Derivative[0,1][u][x,0]==0};
sol=DSolve[{pde,bc,ic},u[x,t],{x,t}]
ClearAll[u,t,x,c,A,L];
pde=D[u[x,t],{t,2}]==c^2 D[u[x,t],{x,2}]+A x
bc={u[0,t]==0,u[L,t]==0};
ic={u[x,0]==0,Derivative[0,1][u][x,0]==0};
NumericQ[L]=True;(*this had no effect*)
sol=DSolve[{pde,bc,ic},u[x,t],{x,t}]
ClearAll[u,t,x,k,L,f];
pde=D[u[x,t],t]==k D[u[x,t],{x,2}];
bc={Derivative[1,0][u][0,t]+u[0,t]==0,Derivative[1,0][u][L,t]+u[L,t]==0};
ic=u[x,0]==f[x];
NumericQ[L]=True;(*adding this had no effect*)
sol=DSolve[{pde,bc,ic},u[x,t],{x,t},Assumptions->{t>=0,k>0,x>=0,x<=L}]
ClearAll[u,t,x,f];
pde=D[u[x,t],{t,1}]==D[u[x,t],{x,2}]
ic=u[x,0]==f[x]
bc={u[-1,t]==0,u[1,t]==0};
sol=DSolve[{pde,bc,ic},u[x,t],{x,t}]
referencia: pde_in_cas
2 votos
¿Límites de dos variables? Muchos de ellos son bastante sencillos ("averiguar dos caminos que lleven a límites diferentes" o "acotar fácilmente un término". Sin embargo, Mathematica falla rutinariamente, porque no está realmente pensado para hacer eso). Véase, por ejemplo este .
0 votos
Probablemente se puede programar la mayoría de las cosas que los humanos pueden hacer, pero algo que no es fácil de manejar es la manipulación simbólica de integrales y sumas (linealidad, aditividad, por partes); ejemplo:
FullSimplify[Integrate[f[x] + x, x] - Integrate[f[x], x]]
. No estoy seguro de si puede hacer algo con la función DirichletPiecewise[{{1, x \[Element] Rationals}}]
.1 votos
No insisto en lo de "fácilmente", y no tengo Mathematica ;-) Si echas un vistazo a este sitio, te darás cuenta de que bastantes preguntas y respuestas (sin nombres, obviamente) se vieron gravemente perjudicadas por el afán de introducir algo en un software que no se entiende del todo, y... preguntarse, después.