用matlab的ode45求解如下微分方程的程序

来源:百度知道 编辑:UC知道 时间:2024/09/25 01:23:08
方程很简单:

dx/dt=3x+cos(t)+sin(2t)
x的初值为2,t的范围[0 10], 时间步长h=0.2

然后我用的程序如下

function xx=lgkt(t,x);
xx=3*x+cos(t)+sin(2*t);
[t,x]=ode45(@lgkt,[0 10],[2]);
plot(t,x,'-o');

然后提示我说x没有被定义!
我是按照matlab的参考来的,也不知道哪里错了。另外,我不会在里面定义时间步长。多元的微分方程按照例子可以写出,但一元的弄不出来了。恳请大家帮我改正一下,最好详细点,说明一下注意的事项,谢谢!

你把lgkt中的x改成x(1)试试看,我试过应该没问题的

function xx=lgkt(t,x)

xx=3*x(1)+cos(t)+sin(2*t);

[t,x]=ode45(@lgkt,[0 10],[2]);

plot(t,x,'-o');