想自学一下常微分方程,求教材推荐
答案:2 悬赏:10 手机版
解决时间 2021-02-09 13:21
- 提问者网友:趣果有间
- 2021-02-08 13:11
想自学一下常微分方程,求教材推荐
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-02-08 13:44
想学深一点,就同济大学的《高等数学》;浅一点的可学民“新世纪教改项目规划教材的《高等数学》
全部回答
- 1楼网友:时间的尘埃
- 2021-02-08 14:54
参考代码:
function zd459187062714272165
l = 0.61/2;
f = 1;
g = 9.81;
m = 0.21;
m = 0.455;
x0 = zeros(4,1);
ode15s(@ode,[0 20],x0)
function dx = ode(t,x)
% x1-y, x2-y', x3=theta, x4=theta'
q = x(3);
sq = sin(q);
cq = cos(q);
dy = x(2);
d2y = (f/m+l*q^2*sq-g*sq*cq) / (m/m+sq^2);
dq = x(4);
d2q = (-f*cq/m+(m+m)*g*sq/m-l*q^2*sq*cq) / (l*(m/m+sq^2));
dx = [dy; d2y; dq; d2q];
end
end
说明:
1、程序采用了嵌套函数来传递倒立摆的相关参数(m, m, l 等)。如果对嵌套函数不熟悉,可以参考matlab文档中关于nested function的内容。
2、目前的仿真结果,θ的范围大约在±20多,这是不合理的(单位为弧度)。不确定是模型有误还是我的程序什么地方写错了,题主再仔细查一下吧。从我目前了解的情况看,倒立摆模型似乎与文献中常见的不一样,我没有仔细推导,也希望题主查出原因后能够反馈一下。
3、在gui设计时,这个主函数可适当改写,作为“开始仿真”的回调函数,差别只在于两个方面:
(1)m、m等参数从gui获取;
(2)ode15s返回的数据用于更新gui的曲线(这里作为示例,未返回数据,直接绘图)。
4、题目没要求仿真过程中实时更新gui的曲线,如果要求实时更新,要稍微麻烦一些。实现手段是通过odeset设置求解器输出的outputfcn属性,并编写相应的回调函数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯