| 查看: 416 | 回复: 0 | ||
[求助]
求解二元微分方程组
|
|
请看我写的主函数: clc; clear; tp=0.1; n=5; ttp=tp/n; tspan=[0:ttp:tp]; y0=[0,4.5,0,4.5]'; [t y]=ode45(@myfunn,tspan,y0); plot(4.5*t/0.075,y(:,4)/4.5); 下面是myfunn子函数的代码: function dy=myfunn(t,y) dy=zeros(4,1); Hf=0.075; M2=80; k=353.33*353.33*M2; c=0.2*2*(k*M2)^0.5; Mf=M2/50; A=Mf/(2700*Hf); M1=250*Mf; ee=y(1)/Hf; Y=0; if y(1)>=Y p=3.5e6+0.6e6*ee/(1-ee)^2; else p=0 ; end dy(1)=y(2); dy(2)=c/M1*(y(4)-y(2))+k/M1*(y(3)-y(1))-A*p/M1+9.8; dy(3)=y(4); dy(4)=-c/M2*(y(4)-y(2))-k/M2*(y(3)-y(1))+9.8; end if y(1)>=Y Y=y(1); else Y=Y; end 我的问题来了,如下: 在这个微分方程中,p值是随y(1)的变化而变化的。假如在第t步计算中,y(1)>Y则p=3.5e6+0.6e6*ee/(1-ee)^2;当y(1)<Y时,p=0。然后计算(t+1)步的y(1)值。把(t+1)步的y(1)和Y对比。当y(1)>Y,则用y(1)替换Y。我写的代码中每步的Y初始值都是0开始,但是每一次y(1)与Y对比之后,Y的值有可能发生变化。而且我的代码中y(1)在每一次调用子函数的过程中都是不变的。 请问怎么解决? |
» 猜你喜欢
求助中医院临床中医中标的青年标书学习,谢谢
已经有6人回复
浙大物院表面物理课题组长期招收普博及直博学生
已经有259人回复
物理学I论文润色/翻译怎么收费?
已经有262人回复
【征稿】Springer Nature热电专题 Discover Materials / Discover Chemistry
已经有47人回复
25届硕士申请,材料计算方向
已经有2人回复
课题组招1-2名硕士
已经有1人回复
机时越来越贵之后,我把一部分 DFT 流程搬到了 AI 计算平台上
已经有0人回复
斯坦福大学与Elsevier世界前2%学者新排名查询
已经有1人回复
27申博推荐:南京航空航天大学国际前沿院光学方向招收博士生!
已经有19人回复
华南师范大学+双一流学科物理学+广东省杰青团队2027年博士招生+机器学习驱动材料设计
已经有1人回复
apl投稿状态
已经有2人回复










回复此楼