-
2021-04-20 05:06:51
共回答了19个问题采纳率:89.5%
function dx=appollo(t,x)
mu=1/82.45;
mustar=1-mu;
r1=sqrt((x(1)+mu)^2+x(3)^2);
r2=sqrt((x(1)-mustar)^2+x(3)^2);
dx=[x(2)
2*x(4)+x(1)-mustar*(x(1)+mu)/r1^3-mu*(x(1)-mustar)/r2^3
x(4)
-2*x(2)+x(3)-mustar*x(3)/r1^3-mu*x(3)/r2^3];
--------------------------------------------------------------------------------------
x0=[1.2;0;0;-1.04935751];%x0(i)对应与xi的初值
options=odeset('reltol',1e-8);%该命令的另一种写法是options=odeset;options.reltol=1e-8;
tic
[t,y]=ode45(@appollo,[0,20],x0,options);%t是时间点,y的第i列对应xi的值,t和y的行数相同
toc
plot(y(:,1),y(:,3))%绘制x1和x3,也就是x和y的图形
title('Appollo卫星运动轨迹')
xlabel('X')
ylabel('Y')
1年前
10
更多相关内容 -
matlab求解微分方程组代码-matlab_calculation_method:此项目是“计算方法”书中提到的经典方法和算法的...
2021-05-23 12:03:39matlab求解微分方程组代码 计算方法(calculation methodb) 该项目是《计算方法》一书中提到的经典方法和算法的matlab程序实现,包含代码详解和运行过程。 :grinning_face_with_big_eyes: 1.简介 2.线性方程组的... -
用MATLAB求解微分方程及微分方程组
2015-04-03 20:25:35用MATLAB求解微分方程及微分方程组方法介绍和例子。Matlab -
如何使用MATLAB求解微分方程组_非线性微分方程组求解
2020-07-09 08:31:36TMU_BME_2013 Topic: 如何使用 MATLAB 求 解常微分方程组 a.What ? 微分方程 指描述未知函数的导数与自变 量之间的关系的方程未知函数是一元函 数的微分方程称作 常微分方程 未知函数 是多元函数的微分方程称作 偏... -
三课时精通matlab求解微分方程组和相平面图
2021-06-18 23:19:55精通matlab求解微分方程组和相平面图 -
matlab求解微分方程组代码-Gauss-Elimination:qlz的线性代数的Java项目
2021-05-23 12:05:17matlab求解微分方程组代码 Gauss-Elimination A java project for qlz's Linear Algebra Collaborators: @NJUBrocoli @RosalieMiao 一个极其虐待用户的项目 一份极其丢人的文档 妈妈再也不用担心我的线代作业算不对... -
怎么用MATLAB求解微分方程组并画出解函数图?
2021-04-18 08:51:19//函数定义,用于计算微分方程组中各方程右端函数值,连分式法对微分方程组积分一步函数pbs1将调用该函数f。 //t为自变量,x,y为函数值,dx,dy为右端函数值(即微分方程的值)。 f(t,x,y,dx,dy)= { dx=-(x^3)-y, dy...!using["XSLSF"]; //使用命名空间XSLSF
//数组xArray存放x的值;ti为当前有效值的个数;tmax为ti对应的时间;tmin为起始时间。
xt(t:k:xArray,ti,tmax,tmin)=
{
k=(t-tmin)/(tmax-tmin)*ti-1,
if[k<0, k=0], if[k>=ti, k=ti-1],
xArray.getrai[k]
};
//数组yArray存放y的值;ti为当前有效值的个数;tmax为ti对应的时间;tmin为起始时间。
yt(t:k:yArray,ti,tmax,tmin)=
{
k=(t-tmin)/(tmax-tmin)*ti-1,
if[k<0, k=0], if[k>=ti, k=ti-1],
yArray.getrai[k]
};
//函数定义,用于计算微分方程组中各方程右端函数值,连分式法对微分方程组积分一步函数pbs1将调用该函数f。
//t为自变量,x,y为函数值,dx,dy为右端函数值(即微分方程的值)。
f(t,x,y,dx,dy)=
{
dx=-(x^3)-y,
dy=x-y^3
};
//用连分式法对微分方程组进行积分,获得理论值。
//t1,t2为积分的起点和终点。
//h,s为自动变量。
//模块变量:hf为函数f的句柄,要预先获得该句柄;Array为工作数组;step为积分步长;eps为积分精度。
积分(t1,t2:h,s:hf,Array,step,eps)=
{
s=ceil[(t2-t1)/step], //计算积分步数
h=(t2-t1)/s, //重新计算积分步长
{ pbs1[hf,t1,Array,h,eps], //对微分方程组积分一步
t1=t1+h //积分步长增加
}.until[abs(t1-t2)
};
数据(:i,h,t1,t2,x,y,static,free:hf,Array,step,eps,max,xArray,yArray,ti,tmax,tmin)= //微分方程组积分获得数据
{
if[free,delete(Array),delete(xArray),delete(yArray),return(0)],
hf=HFor("f"), //模块变量hf保存函数f的句柄,预先用函数HFor获得该句柄
step=0.01,eps=1e-6, //积分步长step要合适,积分精度eps越小越精确,用于对微分方程组积分一步函数pbs1
Array=new[rtoi(real_s),rtoi(2*15)], //申请工作数组
max=1001,
xArray=new[rtoi(real_s),rtoi(max)], //申请工作数组
yArray=new[rtoi(real_s),rtoi(max)], //申请工作数组
Array.setra(0,1,0.5), //设置积分初值,通过模块变量Array传递,Array是一个数组
xArray.setra(0,1), //设置xArray的第一个值
yArray.setra(0,0.5), //设置yArray的第一个值
ti=1, h=step*3, tmin=0, tmax=0, t1=0, t2=h,
i=1,(i
积分(&t1,t2), //从t1积分到t2
Array.getra(0,&x,&y), //从数组Array获得t2时的积分值
xArray.setra(i,x), yArray.setra(i,y), //将积分值保存到数组
ti=i+1, tmax=t1, t2=t2+h,
i++
}
};
//绘制函数图形
(::hxt,hyt)= hxt=HFor("xt"), hyt=HFor("yt"); //获得函数xt和yt的句柄,保存在模块变量中
gleDrawScene[HFor("Scene")],stop(); //设置场景绘制函数后退出
Scene(::hxt,hyt,tmax,tmin)=
{
glClear[], //清除屏幕以及深度缓存
glLoadIdentity[], //重置视图
glTranslated[0,0,-20], //移动坐标,向屏幕里移动10个单元
glColor3d[0,0,1], //设置颜色
fgPlot[hxt,tmin,tmax,FG_Y,-1,2], //绘制一元函数图象
glColor3d[1,0,0], //设置颜色
fgPlot[hyt,tmin,tmax,FG_Y,-1,2] //绘制一元函数图象
};
-
Matlab 求解微分方程(ODE)
2022-03-28 14:12:31Matlab 求解微分方程(ODE) -
Matlab求解微分方程(组)及偏微分方程(组)
2014-04-21 21:31:13Matlab求解微分方程(组)及偏微分方程(组) -
MATLAB解微分方程组
2019-01-22 18:55:09解单一微分方程组 S=dsolve(eqn,cond) eqn是微分方程等式,其中微分用diff函数表示,cond是确定微分方程不定系数的条件。注意函数要用带括号的形式定义。即: y(x)=2∗x;y(x)=2*x;y(x)=2∗x; 不能是 y=2∗x;y=2*x...解单一微分方程组
S=dsolve(eqn,cond)
eqn是微分方程等式,其中微分用diff函数表示,cond是确定微分方程不定系数的条件。注意函数要用带括号的形式定义。即:
y ( x ) = 2 ∗ x ; y(x)=2*x; y(x)=2∗x; 不能是 y = 2 ∗ x ; y=2*x; y=2∗x;
确定初始条件时要设置一个新变量:
D y = d i f f ( y , x ) D y ( 0 ) = = 1 Dy=diff(y,x)\quad Dy(0)==1 Dy=diff(y,x)Dy(0)==1
如果没有cond则为解中含有不定系数C。举例
求解微分方程: y ′ ′ ′ − 3 y ′ ′ + 3 y ′ − y = − 1 y'''-3y''+3y'-y=-1 y′′′−3y′′+3y′−y=−1
初始条件 y ′ ′ ( 0 ) = y ′ ( 0 ) = 1 , y ( 0 ) = 2 y''(0)=y'(0)=1,\quad y(0)=2 y′′(0)=y′(0)=1,y(0)=2
解微分方程组
Y=dsolve(eqns,cond)
Y、eqn的形式和solve中的Y相同(参见解方程组部分)
举例
{ x ′ − 2 y ′ ′ − 2 y = 0 , x ( 0 ) = x ′ ( 0 ) = 0 x ′ ′ − 2 y ′ = 2 s i n ( t ) , y ( 0 ) = y ′ ( 0 ) = 1 \left\{ \begin{aligned} x'-2y''-2y=0,\quad x(0)=x'(0)=0\\ x''-2y'=2sin(t),\quad y(0)=y'(0)=1 \end{aligned} \right. {x′−2y′′−2y=0,x(0)=x′(0)=0x′′−2y′=2sin(t),y(0)=y′(0)=1
-
常微分方程数值解matlab代码-ODE-System-Numerical-solver:求解常微分方程组
2021-06-02 03:23:16求解常微分方程组 依赖 用 Fortran 90 编写的代码 gfortran 编译器 使用 Matlab/Octave 绘制解决方案 如何使用 运行代码 代码在 Fortran 90 中运行,您将需要一个 Fortran 编译器,例如 gfortran。 在代码中更改了... -
如何用matlab求解非线性微分方程组(基于龙格库塔的数值微分算法)?.docx
2021-10-31 00:14:10如何用matlab求解非线性微分方程组(基于龙格库塔的数值微分算法)?.docx -
Matlab求解微分方程组
2017-04-26 16:55:58(1)求解普通微分方程组:使用ode45方法 1. 创建一个函数文件eq2.m,在函数文件中描述这个解的微分方程组: %eq2.m文件 %描述微分方程组 function dy=eq2(t,y) %说明微分变量是二维的,令y(1)=x,y(2)=y ...我们采用ode方法:
(1)求解普通微分方程组:使用ode45方法
1. 创建一个函数文件eq2.m,在函数文件中描述这个解的微分方程组:
%eq2.m文件 %描述微分方程组 function dy=eq2(t,y) %说明微分变量是二维的,令y(1)=x,y(2)=y dy=zeros(2,1); %微分方程组 dy(1)=5*(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2); dy(2)=5*(1-y(2))/sqrt((1-y(1))^2+(t-y(2))^2); end
2.外部调用ode45函数求解微分方程组:
[t,y]=ode45(@eq2,[0,2],[0,0]);
ode45函数说明:第一个参数是方程的名称,第二个参数是指求解时t的范围,第三组参数是指y中每个元素的初值。
[t,y]=ode45(@eq2,[t1,t2],[y1(0),y2(0)]);
3.绘制响应曲线
plot(t,y(:,1),'-',t,y(:,2),'*')
y(1)用-绘制,y(2)用*绘制(下面的两条曲线重合了)
-
matlab求解含时微分方程组-ode45龙格库塔方法.docx
2021-10-31 00:11:13matlab求解含时微分方程组-ode45龙格库塔方法.docx -
matlab解微分方程组代码下载-simplePde1d:适用于Octave和MATLAB的基本1DPDE解算器
2021-05-28 13:45:39matlab解微分方程组代码下载pde1d 用于Octave和MATLAB的一维偏微分方程求解器 pde1d在单个空间变量和时间中求解偏微分方程组。 输入大部分与MATLAB函数pdepe兼容。 许多pdepe示例仅需很小的改动就可以与pde1d一起... -
数学建模学习(29):matlab求解微分方程组详细讲解,代码+案例讲解,学不会找我!
2021-08-21 06:04:00文章目录前言求解微分方程组求解矩阵微分方程组总结 前言 上一篇我已经详细讲过求微分方程,这一篇是对上一篇的补充,也就是变得稍微复杂一点,就是要求方程组了,如果你学会了上一篇,那么求解方程组其实并不难了。... -
matlab求解微分方程的数值解
2022-03-21 13:25:31一般微分方程的数值解法很大一类是关于微分方程初值问题的数值解法,这类问题需要用一阶显式的微分方程组来描述为 x˙(t)=f(t,x(t))\dot{\boldsymbol{x}}(t)=\boldsymbol{f}(t, \boldsymbol{x}(t)) -
Matlab求解微分方程组及偏微分方程组.doc
2021-09-27 15:12:54Matlab求解微分方程组及偏微分方程组.doc -
基于Matlab常系数线性微分方程组的求解.pdf
2021-06-27 12:17:16基于Matlab常系数线性微分方程组的求解.pdf -
2.龙格库塔_matlab_matlab求微分方程组解的一种算法_
2021-10-01 09:46:57龙格库塔法是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。 -
matlab常微分方程和常微分方程组的求解-matlab常微分方程和常微分方程组的求解.pdf
2019-08-13 14:10:35matlab常微分方程和常微分方程组的求解-matlab常微分方程和常微分方程组的求解.pdf matlab常微分方程和常微分方程组的求解 -
MATLAB算法-求解微分方程数值解和解析解
2020-03-26 08:00:20MATLAB算法-求解微分方程数值解和解析解.ppt -
MATLAB求解微分方程
2020-04-21 02:52:30一、微分方程的符号解 dsolve(‘方程1’,‘方程2’,…,‘方程n’,‘初始条件’,‘自变量’) ...例1:求解微分方程: 解: y=dsolve('D2y-2*Dy+y-x^2=0','x') 例2: 解: y=dsolve('D2y+4*Dy+29*y','y(... -
matlab求解微分方程组和相平面图
2021-07-23 17:39:33matlab求解微分方程组和相平面图,通过编程实战掌握具体应用。包括matlab求解微分方程组和相平面图前、matlab求解微分方程组和相平面图中、matlab求解微分方程组和相平面图后。 -
matlab求解微分方程的解析解
2022-03-21 10:08:38本文将研究微分方程的解析解算法,介绍在MATLAB 环境中如何用微分方程求解函数直接得出线性微分方程组的解析解,并对一阶简单的非线性微分方程的解析解求解进行探讨,从而得出结论,一般非线性微分方程是没有解析解... -
matlab求解常微分方程(组)
2021-04-23 13:17:10二、函数功能介绍及例程1、dsolve 函数dsolve函数用于求常微分方程组的精确解 也称为常微分方程的符号解。如果没有初始条件或边界条件 则求出通解 如果有 则求出特解。1)函数格式Y dsolve(‘eq1,eq2,... -
matlab解微分方程组
2020-02-11 23:15:55解微分方程组: x’=-x^3-y,x(0)=1 y’=x-y^3,y(0)=0.5 0<t<30 编辑器窗口: %M函数eg6_3fun.m function f=eg6_3fun(t,x) f(1)=-x(1)^3-x(2); f(2)=x(1)-x(2)^3; f=f(????;%注意要保证f为列向量 指令窗口: ... -
matlab求解微分方程组代码-Assignment-of-Maneuvring-of-Ship:船舶转让
2021-05-23 12:05:10matlab求解微分方程组代码 [removed] 操纵性大作业说明文档 实验目标 基于Abkowitz非线性数学模型,构建关于船舶运动与舵角的操纵性常微分方程,求解模拟船舶在下列三个试验中的运动状态: 回转试验 回舵试验 Z形... -
Matlab求解微分方程(2)——偏微分方程的求解
2021-04-18 12:38:58对于偏微分方程的求解,Matlab提供了两种工具。第一种是pdepe()函数,它的特点是通用性好,不受求解阶次的限制,不足之处是只支持命令行的格式;第二种是PDE工具箱,它的特点是提供了一个GUI界面,简洁易懂可视,... -
基于MATLAB的高阶常微分方程组求解(附完整代码)
2022-05-02 22:15:14高阶常微分方程组 例题2 三. 刚性微分方程 例题3 例题4 四. 隐式微分方程 例题5 一. 单个高阶常微分方程 一个高阶常微分方程的一般形式如下: 输出变量y(t)的各阶导数初始值为如下: 选择一组状态...