方程很简单:
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');