定义字符如下:
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的表达式!
期待一位绝顶高手解决此问题!