急!matlab用龙格库塔法求解微分方程组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!matlab用龙格库塔法求解微分方程组相关的知识,希望对你有一定的参考价值。

题目是这样的:

将微分方程组重写为一阶以后是这样的

初始矢量

不知道在matlab中应该怎么写,求大神赐教!!!
分数不多,但是是我有的全部了 TAT
拜托大家

参考技术A 解方程很简单,调用ode45即可

关键是求运动时间,假设z方向坐标变为0即为落至地面运动结束,可求得运动时间的近似值及落地点坐标

代码如下:

clear all
clc
c=0.07;
u0=25;
a=pi/6;
f=@(t,x)([x(2);
-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(2);
x(4);
-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*(x(4)-7-.35*x(5));
x(6);
-9.81-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(6)]);

[t,Y]=ode45(f,0:.01:2,[0 u0*cos(a) 0 0 1.4 u0*sin(a)]);
n=max(find(Y(:,5)>0));
t_end=t(n)
s=[Y(n,1),Y(n,3),0]
plot3(Y(1:n,1),Y(1:n,3),Y(1:n,5))

其中t_end为运动时间
s为落地点坐标

看了半天,怎么都觉得方程不太对

再检查一下方程吧,尤其是第二个方程等号右边到底有没有负号

最后一个方程等号右边也有问题,请仔细检查本回答被提问者和网友采纳
参考技术B 你试试ODE45,不用给我分数,我随便说说

用MATLAB按二阶龙格库塔法求解微分方程组,大神速来,急急急

用MATLAB按二阶龙格库塔法求解微分方程组,在0时刻,x(0),y(0),Z(0),Vx(0), Vy(0),Vz(0)是各个方向的速度且已知,μ为常数,r等于x,y,z的平方和开根,求xyz关于时间变量的函数关系式。

参考技术A ode45的帮助 例子那里有一阶常方程组的求解方法

你可以把上面的方程组改写成一阶常方程组
令x1=x
x2=dx1/dt
x3=dx2/dt

y1=y
y2=dy1/dt
y3=dy2/dt

x3=-u*x1/r3
y3=-u*y1/r3

z类似追问

能不能应用matlab把具体的程序写出来,谢谢。另,matlab中定义能不能用function,为什么我用function定义老出错。

本回答被提问者和网友采纳
参考技术B 字母上加两点表示的是二阶导数?Vx=dx/dt?追问

是二阶导数。是这样

以上是关于急!matlab用龙格库塔法求解微分方程组的主要内容,如果未能解决你的问题,请参考以下文章

matlab用龙格库塔法求解变系数常微分方程

求编程达人帮忙用matlab编程用龙格库塔方法解微分方程

matlab龙格库塔法解微分方程

Runge-Kutta龙格-库塔法求解微分方程matlab仿真

matlab代码实现四阶龙格库塔求解微分方程

基于龙格-库塔法Runge-Kutta的常微分方程的求解matlab仿真