精华内容
下载资源
问答
  • 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为列向量

    指令窗口:

    [t,x]=ode45(@eg6_3fun,[0 30],[1;0.5] %1和0.5是初始值

    解应该是x(t),y(t)两个函数
    所以
    把x和y都写成一个x
    x表示一个向量
    x----x(1)
    y----x(2)

    算法本身要求f是列向量,
    所以,f=f(:)

    更多相关内容
  • 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)=2x; 不能是 y = 2 ∗ x ; y=2*x; y=2x;
    确定初始条件时要设置一个新变量:
    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&#x27;&#x27;&#x27;-3y&#x27;&#x27;+3y&#x27;-y=-1 y3y+3yy=1
    初始条件 y ′ ′ ( 0 ) = y ′ ( 0 ) = 1 , y ( 0 ) = 2 y&#x27;&#x27;(0)=y&#x27;(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&#x27;-2y&#x27;&#x27;-2y=0,\quad x(0)=x&#x27;(0)=0\\ x&#x27;&#x27;-2y&#x27;=2sin(t),\quad y(0)=y&#x27;(0)=1 \end{aligned} \right. {x2y2y=0,x(0)=x(0)=0x2y=2sin(t),y(0)=y(0)=1在这里插入图片描述

    展开全文
  • matlab解微分方程组代码下载pde1d 用于Octave和MATLAB的一维偏微分方程求解器 pde1d在单个空间变量和时间中求解偏微分方程组。 输入大部分与MATLAB函数pdepe兼容。 许多pdepe示例仅需很小的改动就可以与pde1d一起...
  • matlab求解微分方程组代码 计算方法(calculation methodb) 该项目是《计算方法》一书中提到的经典方法和算法的matlab程序实现,包含代码详解和运行过程。 :grinning_face_with_big_eyes: 1.简介 2.线性方程组的...
  • matlab解微分方程组并作图

    千次阅读 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^3x...

    共回答了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
  • 龙格库塔法是用于非线性常微分方程的重要的一类隐式或显式迭代法。
  • 四届龙格库塔法求解线性、非线性单自由度振动系统微分方程
  • 我们已经开发了一个拉格朗日公式,用于推导控制经典张拉整体系统动力学的代数微分方程。 该框架足够通用,可以对具有驱动关节的通用多体系统进行建模。 此外,在最小化几何和能量约束违反的直接校正方法的帮助下,...
  • matlab解微分方程组代码下载大会17 该存储库包含ASEE 2017论文中描述的MATLAB代码和代码段。 该存储库中的代码需要MATLAB的偏微分方程工具箱(pdetool)。 讲师可以下载该材料并用于其课程。 请适当地引用此工作...
  • 基于Matlab常系数线性微分方程组的求解.pdf
  • TMU_BME_2013 Topic: 如何使用 MATLAB微分方程组 a.What ? 微分方程 指描述未知函数的导数与自变 量之间的关系的方程未知函数是一元函 数的微分方程称作 常微分方程 未知函数 是多元函数的微分方程称作 偏...
  • 一节课精通matlab入门求微分方程组的通数值,包括详细的代码资料和讲解注释
  • //函数定义,用于计算微分方程组中各方程右端函数值,连分式法对微分方程组积分一步函数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求解微分方程组和相平面图
  • matlab解微分组代码下载标称非线性模型预测控制 此存储库中的代码是 Python 中带有软约束的基本非线性模型预测控制 (NMPC) 实现,它使用 Unscented Kalman 滤波器进行状态估计。 NMPC 算法不考虑可能的不确定性,...
  • Matlab解微分方程组

    2022-05-29 19:08:42
    这个微分方程组有点难了很长时间还没出来,不知道什么原因求帮助一下
  • matlab解微分方程

    2018-09-17 21:51:49
    代码为2018年全国数学建模竞赛a题第一问matlab源程序,可动态生成三层隔热服距离与温度的关系图,以及三层隔热服的温度分布图。主要内容建立在一维非稳态热传导以及偏微分方程的解法程序
  • matlab求解微分方程的解析

    千次阅读 2022-03-21 10:08:38
    本文将研究微分方程的解析算法,介绍在MATLAB 环境中如何用微分方程求解函数直接得出线性微分方程组的解析,并对一阶简单的非线性微分方程的解析求解进行探讨,从而得出结论,一般非线性微分方程是没有解析...
  • 对于难的常微分方程,使用matlab求数值 分两个m文件,一个为调用指令,一个为原函数 可以根据自己的所求方程不同适当修改代码求解 每一步都有注释,一边看注释一边体会才是提升的最好办法
  • matlab解微分方程

    2021-05-24 20:08:37
    研究了使用matlab如何解微分方程
  • matlab求解常微分方程

    千次阅读 2021-04-23 13:17:10
    二、函数功能介绍及例程1、dsolve 函数dsolve函数用于求常微分方程组的精确 也称为常微分方程的符号。如果没有初始条件或边界条件 则求出通 如果有 则求出特。1)函数格式Y dsolve(‘eq1,eq2,...
  • 如何用matlab求解非线性微分方程组(基于龙格库塔的数值微分算法)?.docx
  • Matlab 解微分方程;一微分方程的解析;输入命令: y=dsolve'D2y+4*Dy+29*y=0'y(0)=0,Dy(0)=15'x;二微分方程的数值;二建立数值解法的一些途径;2使用数值积分;3使用泰勒公式; 1在n个未知函数的方程组时x0和x均...
  • Matlab提供了解决包括解微分方程在内的各种类型问题的函数: 1. 常规微分方程(ODEs)的初始值问题 初值问题是用MATLAB ODE求解器解决的最普遍的问题。初始值问题最典型的是对非刚性度(?nonstiff)问题应用...
  • Matlab求解微分方程()及偏微分方程()
  • MATLAB】求微分方程的通

    千次阅读 2022-02-06 20:29:55
    例: f=dsolve(’D2y+9*y-18*cos(3*x)- 30*sin(3*x)=0’,’x’); f=sin(3*x)*C2+cos(3*x)*C1+cos(3*x)+3*sin(3*x)*x-5* cos(3*x)*x
  • 高阶常微分方程组 例题2 三. 刚性微分方程 例题3 例题4 四. 隐式微分方程 例题5 一. 单个高阶常微分方程 一个高阶常微分方程的一般形式如下: 输出变量y(t)的各阶导数初始值为如下: 选择一组状态...
  • 练习。使用四阶龙格库塔法求解常微分方程组,通用性较佳。附加一个振动方程求解的案例。振动方程是一个二阶微分方程,转化为两个方程组以后用编写的代码求解。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,093
精华内容 3,237
关键字:

matlab解微分方程组

matlab 订阅