Solving symbolic partial differential equation
13 次查看(过去 30 天)
显示 更早的评论
I am looking to solve a symbolic partial differential equation (PDE), akin to how another symbolic mathematical environment uses the function pdsolve().
Is there an equivalent in the MATLAB symbolic toolbox? I have found dsolve, however am not sure how much of the behaviour would be equivalent.
So far I have only received the error message "Indeterminates must be functions." I am thinking this must be due to how I have set up
f(t1, t2, t3, p2, p3, p4)
In my minimum working example:
%%MWE
syms t1 t2 t3 p2 p3 p4
pars = [t1 t2 t3 p2 p3 p4];
d = 1;
MM = length(pars);
alphapre = [0; 0; -t3/p4; 0; 0; 1];
syms f(t1, t2, t3, p2, p3, p4)
alpha = sym(zeros(d, MM));
PDE = sym(zeros(d,1));
for mm = 1:d
alpha(mm, :) = alphapre(:,mm).';
PDE(mm) = sum(alpha(mm,:).*jacobian(f,pars));
end
dsolve(PDE == 0);
which results in a PDE of the form
d
t3 --- f(t1, t2, t3, p2, p3, p4)
d dt3
--- f(t1, t2, t3, p2, p3, p4) - -------------------------------- == 0
dp4 p4
The answer to this example should be
t3*t4
Have I made a stupid mistake? Or is it just that I should use something different for this functionality?
2 个评论
Torsten
2018-2-27
"dsolve" solves ODEs, not PDEs.
There is no official MATLAB tool that symbolically solves PDEs.
Best wishes
Torsten.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Eigenvalue Problems 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!