我想用matlab计算下面这个微分方程,但我尝试了很多次都失败了,有大神帮我解答一下吗? ~[8J3A45$QGGB0$6R3)R1LO.png 返回小木虫查看更多
有人解答一下吗
不用matlab,用高数直接积分就可以吧
先定义函数: -------------------------------------------------------- function xd = vde(t,x,k,m) xd = [x(2);-k/m*(x(1))^1.5]; end -------------------------------------------------------- 然后程序调用ODE45 -------------------------------------------------------- clear;clc;close all; k = 1e8; m = 100; tspan = [0,5]; x0 = [0;1]; [t,x] = ode45(@(t,x) vde(t,x,k,m),tspan,x0); plot(t,x(:,1))
有人解答一下吗
不用matlab,用高数直接积分就可以吧
先定义函数:
--------------------------------------------------------
function xd = vde(t,x,k,m)
xd = [x(2);-k/m*(x(1))^1.5];
end
--------------------------------------------------------
然后程序调用ODE45
--------------------------------------------------------
clear;clc;close all;
k = 1e8;
m = 100;
tspan = [0,5];
x0 = [0;1];
[t,x] = ode45(@(t,x) vde(t,x,k,m),tspan,x0);
plot(t,x(:,1))
谢谢大神
我想再问一个问题,怎么把不同程序得到的曲线放到同一个图中呢?我想要对比。希望大神指点一下
,
先声明下,我是菜鸟
不同程序的曲线放到一张图上有好多办法
你可以把不同程序得出的曲线数据放到矩阵中,然后画图
也可以将另一程序定义为函数,输出数据,在主程序中调用,hold on 画图即可
能不能留一个联系方式呢,还是不会。