你好,同学,代码供参考,该注释都注释了:
% 第一题
odefun1 = @(t,y) [y(2)*y(3); -y(1)*y(3); 0.51*y(1)*y(2)];%ode建立
tspan = [0,10];%时间跨度
y0 = [0;1;1];%初值
[t,y] = ode45(odefun1, tspan, y0);%求解
figure(1);clf
plot(t,y);
xlabel('t'); ylabel('y')
legend('y1','y2','y3')%标记曲线
% 第二题
odefun2 = @(t,x) [x(2); 1000*(1-x(1)^2)*x(2)+x(1)];
tspan = [0,1e4];%时间跨度
x0 = [2; 0];%初值
[t,x] = ode23s(odefun2, tspan, x0);%刚性方程求解用ode23s
figure(2);clf%画图
yyaxis left % 由于x(t)和x'(t)量级相差太大,用了双y坐标
plot(t,x(:,1));
yyaxis right
plot(t,x(:,2));
xlabel('t'); ylabel('x')
legend('x(t)','x''(t)')
效果图
有帮助望采纳哟
可以看看dsolve()这个函数
[y1,y2,y3]=dsolve('dy1=y3*y2,dy2=-y1*y3,dy3=0.51y1*y2','y1(0)=0,y2(0)=1,y3(0)=1')