| 查看: 1963 | 回复: 0 | |||
[交流]
Matlab时间变量/变系数微分方程求解问题
|
|
这是一个动力学方程,d2x/dt2=F-kx-cx;其中F是随时间变化的变量,已经插值得到任意时刻F。把方程简化,x''=F-x-x',即变系数二阶微分方程,用ode45求解。有人说只要F的步长跟求解步长一致就能求解,但是不知道怎么把F写进程序;还有说用用循环程序求解,按照建议编程后求解结果是0。这个问题该怎么解决?求助大神。 clc;clear F=[0 0;1 2;2 5;3 7;4 9;5 10;6 9;7 7;8 5;9 2;10 0] x0=F(:,1); y0=F(:,2); T=F(:,1); F=F(:,2); a=[0:0.01:10]'; for i=1:length(a) f(i)=lagr_interp(x0,y0,a(i)); end f=f' F=[a f]; subplot(2,1,1); plot(F(:,1),F(:,2)) xlabel('t / ms') ylabel('Fpt / N') axis([0 10 0 11]) %插值得到F矩阵 %调用的方程函数 function dy=fun(t,y,F) dy(1)=y(2); dy(2)=F-y(1)-dy(1); dy=[dy(1);dy(2)]; %循环求解程序,结果是一系列0值 for ii=1:length(f); [t,y]=ode45(@fun,[0:0.01:10],[0;0],[],f(ii)); end y(:,1) subplot(2,1,2) plot(t,y(:,1)) |
» 猜你喜欢
国家基金申请书模板内插入图片不可调整大小?
已经有9人回复
退学或坚持读
已经有20人回复
免疫学博士有名额,速联系
已经有14人回复
面上基金申报没有其他的参与者成吗
已经有4人回复
多组分精馏求助
已经有6人回复
国家级人才课题组招收2026年入学博士
已经有6人回复













回复此楼