0
function yp = nonlinear (t,y)
e=0.2;
yp(1)=y(2);
yp(2) = (-y(1)-e*y(1)^3);
tspan = [0.20];
y0=[0;0]
[t,y]=ode45('nonlinear',tpsan,y0)
plot (t,y(:,1))
grid
xlabel('time')
ylabel('u')
title ('u vs. t')
hold on;

抱歉,我在 matlab 上绝对是菜鸟,当我尝试执行代码时,它显示“变量 t 的未定义函数”。我正在尝试使用 ode45 来求解微分方程

4

1 回答 1

1

阅读关于ode45. 您需要将以下代码行保存到文件中nonlinear.m

function yp = nonlinear (t,y)
e=0.2;
yp(1)=y(2);
yp(2) = (-y(1)-e*y(1)^3);

然后在一个单独的(脚本)文件中,保存其余代码:

tspan = [0.20];
y0=[0;0]
[t,y]=ode45('nonlinear',tpsan,y0)
plot (t,y(:,1))
grid
xlabel('time')
ylabel('u')
title ('u vs. t')
hold on;

在尝试此类事情之前,您可能还想熟悉 MATLAB。查看教程

于 2017-07-11T08:20:57.837 回答