题目
MATLAB微分方程数值解如何精确定位特定一点处的解
我想问的问题比较难表示,所以我用下面一个例子来说明我的问题
这是一个用到简单微分方程的物理情景
一个质量m=100kg的物体从高处竖直落下,加速度会受到空气阻力的影响,这里简单的认为重力加速度g=9.8不变,空气阻力f=k*v^2 ,k=1.只考虑竖直方向速度v,竖直位移都以向下为正.初位移都为0;
那么有以下微分方程:
dy/dt=v
dv/dt=9.8-1*v^2/m
m=100,v0=y0=0
然后我用MATLAB的ode45函数求这个微分方程的数值解
先编写函数
function dx=fun(t,x)
% x(1)表示下落的距离y(向下为正),x(2)表示下落速度v(向下为正)
k=1; % k=1为表示空气阻力的一个常量,这里简化空气阻力f=k*v^2
m=100;% m为质量=100kg
dx=zeros(2,1);
dx(1)=x(2); % 下落距离对时间的导数=速度
a=9.8-(k*x(2)^2)/m;% a加速度(向下为正)=重力加速度 - 空气阻力产生的加速度
dx(2)=a; % 速度对时间的导数=加速度
end
现在我想要得到t=15s时的位移和速度
那么输入
[T,X]=ode45('fun',[0,15],[0 0]);
返回的X中的最后一列就是我想要的值;
但假如我想知道当竖直向下的位移刚好=100米时的时间和速度,那该怎么办?现在我的做法是先将解一个充分大的时间,然后在里面找位移在100两侧的时间和速度,再通过插值得到位移刚好=100时的时间和速度.但这样很麻烦,也不见得准确,MATLAB有什么自带的语句能实现这个功能吗?或是有什么更好的方法?
我想问的问题比较难表示,所以我用下面一个例子来说明我的问题
这是一个用到简单微分方程的物理情景
一个质量m=100kg的物体从高处竖直落下,加速度会受到空气阻力的影响,这里简单的认为重力加速度g=9.8不变,空气阻力f=k*v^2 ,k=1.只考虑竖直方向速度v,竖直位移都以向下为正.初位移都为0;
那么有以下微分方程:
dy/dt=v
dv/dt=9.8-1*v^2/m
m=100,v0=y0=0
然后我用MATLAB的ode45函数求这个微分方程的数值解
先编写函数
function dx=fun(t,x)
% x(1)表示下落的距离y(向下为正),x(2)表示下落速度v(向下为正)
k=1; % k=1为表示空气阻力的一个常量,这里简化空气阻力f=k*v^2
m=100;% m为质量=100kg
dx=zeros(2,1);
dx(1)=x(2); % 下落距离对时间的导数=速度
a=9.8-(k*x(2)^2)/m;% a加速度(向下为正)=重力加速度 - 空气阻力产生的加速度
dx(2)=a; % 速度对时间的导数=加速度
end
现在我想要得到t=15s时的位移和速度
那么输入
[T,X]=ode45('fun',[0,15],[0 0]);
返回的X中的最后一列就是我想要的值;
但假如我想知道当竖直向下的位移刚好=100米时的时间和速度,那该怎么办?现在我的做法是先将解一个充分大的时间,然后在里面找位移在100两侧的时间和速度,再通过插值得到位移刚好=100时的时间和速度.但这样很麻烦,也不见得准确,MATLAB有什么自带的语句能实现这个功能吗?或是有什么更好的方法?
提问时间:2021-02-13
答案
在不知道结果时间的时候是需要先设定一个比较大的时间范围计算的但是并不需要将整个范围的结果都算出来再插值这个时候可以设定触发事件函数在一定条件下停止计算用odeset可以为ode45求解器设定触发事件的函数详细的...
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
- 1一种物质的溶解度随温度升高而增大 将这种物质的不饱和溶液变为饱和溶液 溶质的质量分数一定变大
- 2在一个沙漠地带,汽车每天行驶200千米,每辆汽车载运可行驶24天的汽油.现有甲、乙两辆汽车同时从某地出发,并在完成任务后,沿原路返回.为了让甲车尽可能开出更远的距离,乙车在
- 3谁会,《山坡羊*潼关怀古》
- 4有a second 也就是序数词前能加不定冠词吗?
- 5有两种物质组成的混合气体对氢气的相对密度为14,则此混合气体中肯定有 A N2 B NO C CH4 D O2
- 6一道奥数题,聪明的人看一下.
- 7若取地球的第一宇宙速度为8km/s,某行星的质量是地球质量的6倍,半径是地球的1.5倍,则此行星的第一宇宙速度约( ) A.16 km/s B.32 km/s C.4km/s D.2km/s
- 81、3/4、2/3、5/8、3/5.第n个数用代数式表示是怎么样的
- 9令我印象深刻的事情(作文)
- 10不知怎么办才好,形容受或发急.
热门考点
- 1哪两个数相乘等于0.44,相加等于2
- 2已知两点M和N分别在直线Y=MX和Y=-MX(M>0)上运动,且/MN/=2,动点P满足:向量OP的二倍=向量OM+向量ON(O为坐标原点),点P的轨迹记为曲线C
- 3英语翻译
- 4小丽和爸爸玩投篮游戏,小丽投进一个得3分,爸爸投进一个得1分,结果两人一共投进20个,得分相等,问小丽投进多少个
- 5怎样用3根火柴摆出12个直角?
- 6在三角形ABC中,若b=1,c=根号3,角c=2派除以3,则a为多少?
- 7英语翻译
- 8小斌做题时,把减数十位上的9就错写成6,把被减数百位上的3错写成8,这样算的差是806,正确的差是多少?
- 9中国的环境污染报告,快
- 10what do you think ____ptotect our own environment