matlab 解微分方程组 (高分求解)奇异性如何解决

2024-11-27 11:24:34
推荐回答(3个)
回答1:

方法如下:先建立一个微分方程组的子函数:
function f=funx1_3(t,x)
f=zeros(3,1);
f(1)=sin(x(3))+cos(x(3))./sin(x(2));
x(2)=cos(x(3))-sin(x(3));
x(3)=1-(sin(x(3))+cos(x(3))).*cot(x(2));
return
再在主界面里调用:
[T,F] = ode45(@funx1_3,[0 12],[0 0 0]);
画图也很容易:
plot(T,F)
但是初值全是0的话解出来的是不是有问题就难说,给个非零数会不会好些,我提供了代码,你可以自己多尝试几组数据.

回答2:

吾是这样考虑的:
syms x1 x2 x3
f=Dx1-(sin(x3)+cos(x3))/sin(x2);
g=Dx2-cos(x3)+sin(x3);
h=Dx3+(sin(x3)+cos(x3))*cos(x2)-1;
[x1,x2,x3]=solve(f,g,h];
不过,Dx1好像不太对,各位高手参考。

回答3:

可不可以先人工算出来