用matlab解二阶微分方程(真的很急)M,m,g,R都能认为是常数,取M=2.48;m=2.17;R=0.28;g=9.8

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 04:56:35
用matlab解二阶微分方程(真的很急)M,m,g,R都能认为是常数,取M=2.48;m=2.17;R=0.28;g=9.8

用matlab解二阶微分方程(真的很急)M,m,g,R都能认为是常数,取M=2.48;m=2.17;R=0.28;g=9.8
用matlab解二阶微分方程(真的很急)
M,m,g,R都能认为是常数,取M=2.48;m=2.17;R=0.28;g=9.8

用matlab解二阶微分方程(真的很急)M,m,g,R都能认为是常数,取M=2.48;m=2.17;R=0.28;g=9.8
参考代码:
M=2.48; m=2.17; R=0.28; g=9.8;
dy = @(t,y) [y(2); (M*R*sin(y(1))*y(2)^2+M*g*sin(y(1))) / ((M+m+m*cos(y(1)))*R)];
ode45(dy,[0 10],[0 1])
 
其中,[0 10]是求解的时间范围,[0 1]是初始条件(0是θ的初值,1是dθ/dt的初值),具体数值请根据自己的实际情况设置.
 
上面的代码会直接把求解结果绘制成曲线,如果希望得到数据自行绘图,最后一句可改为
[t,y] = ode45(dy,[0 10],[0 1]);
得到的t为时间,y(:,1)为θ,y(:,2)是dθ/dt.