matlab微分方程求解 用ode23函数就是这样...最后要做出图像
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 20:19:21
![matlab微分方程求解 用ode23函数就是这样...最后要做出图像](/uploads/image/z/2686040-8-0.jpg?t=matlab%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E6%B1%82%E8%A7%A3+%E7%94%A8ode23%E5%87%BD%E6%95%B0%E5%B0%B1%E6%98%AF%E8%BF%99%E6%A0%B7...%E6%9C%80%E5%90%8E%E8%A6%81%E5%81%9A%E5%87%BA%E5%9B%BE%E5%83%8F)
matlab微分方程求解 用ode23函数就是这样...最后要做出图像
matlab微分方程求解 用ode23函数
就是这样...
最后要做出图像
matlab微分方程求解 用ode23函数就是这样...最后要做出图像
比如我给初始值:初始值:θ(0)=0.5; θ'(0)=0;
下面用y代表θ,然后,函数程序:
function yprime=verderpol(t,y)
global g;
global l;
g=9.8;
l=10;
yprime=[y(2);-g/l*sin(y(1))];
end
主程序:
clc; clear all
global g;
global l;
g=9.8;
l=10;
y0=[0.5;0];%初始值:y(0)=0.5;y'(0)=0;
hold on
[t,y]=ode23('verderpol',[0,3*pi],y0);
plot(t,y(:,1),'r','linewidth',2);
plot(t,y(:,2),'g','linewidth',2);
legend('θ-t图','θ''-t图')
grid on
hold on
画出的图像:
给的条件不够,只好自己假设了 l = 1m, g=9.8 θ0=π/12 %存为fun.m function xdot=fun(t,theta) g=9.8; l=1; xdot=[theta(2);-g*sin(theta(1))/l]; %存为main.m theta0=[pi/12,0]; [t, theta]=ode23('fun',[0,10],theta0); plot(t,theta(:,1));
g=10; l=1; fun=@(t,x) [x(2),;-g/l*sin(x(1))]; ts=[0,20]; x0=[pi/20,0]; [T,X]=ode23(fun,ts,x0); t=T'; theta=X(:,1)'; plot(t,theta); xlabel('t'); ylabel('\theta');