matlab 中偏微分符号,一阶、二阶偏微分方程符号运算

定义字符如下:

syms rx ry zx zy phai;

k=sqrt((4*rx*ry)/((rx+ry)^2+(zx-zy)^2));

kk=int(1/sqrt(1-k^2*sin(phai)^2),phai,0,pi/2);   事实上kk=EllipticK(k);

ek=int(sqrt(1-k^2*sin(phai)^2),phai,0,pi/2);    事实上ek=EllipticE(k);

green=(4*sqrt(rx*ry)/k)*((1-k^2/2)*kk-ek);   green的表达式

假如给定rx=[1 2 3 4];

ry=[2 3 4 5];

zx=[1 2 3 4];

zy=[2 3 4 5];

如何代入green的的表达式进行求解?因为matlab本身没有EllipticK(k)和EllipticE(k)函数,需要调用maple中的

EllipticK(k)和EllipticE(k)进行求解,而k的表达式已在上边给定。

如果单求上式,可以避开字符运算,直接将数值代入matlab原有的椭圆函数积分。

但是现在需要求green表达式关于rx的偏导数dgrx=diff(green,rx),以及二阶偏导数dgrxry=diff(dgrx,ry),不管一阶还是二阶导数,它们最后的表达式是关于rx、ry、zx、zy以及完全椭圆积分EllipticK(k)和EllipticE(k)的表达式,而k又是rx、ry、zx、zy的一个表达式,问题的关键还是matlab本身没有EllipticK(k)和EllipticE(k)函数,需要调用maple中的EllipticK(k)和EllipticE(k)进行求解,不知道怎么实现,期待高手解决!

注:上述字符计算,最后得出的dgrx的表达式中,dgrx的表达式为:1/(rx*ry)^(1/2)/(rx*ry/((rx+ry)^2+(zx-zy)^2))^(1/2)*((1-2*rx*ry/((rx+ry)^2+(zx-zy)^2))*EllipticK(2*(rx*ry/(rx.......

如果dgrx是仅仅是关于字符rx、ry、zx、zy的表达式,比较好求,但是偏偏出现EllipticK(k)和EllipticE(k)的表达式,而EllipticK(k)和EllipticE(k)为maple中的函数,不知道如何把数值带入dgrx或dgrxry的表达式!

期待一位绝顶高手解决此问题!

相关资源:MATLAB偏微分方程
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页