精华内容
下载资源
问答
  • 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)=2x;y(x)=2*x; 不能是 y=2x;y=2*x;
    确定初始条件时要设置一个新变量:
    Dy=diff(y,x)Dy(0)==1Dy=diff(y,x)\quad Dy(0)==1
    如果没有cond则为解中含有不定系数C。

    举例

    求解微分方程:y3y+3yy=1y'''-3y''+3y'-y=-1
    初始条件 y(0)=y(0)=1,y(0)=2y''(0)=y'(0)=1,\quad y(0)=2
    在这里插入图片描述

    解微分方程组

    Y=dsolve(eqns,cond)

    Y、eqn的形式和solve中的Y相同(参见解方程组部分)

    举例

    {x2y2y=0,x(0)=x(0)=0x2y=2sin(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. 在这里插入图片描述

    展开全文
  • 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为列向量 指令窗口: ...

    解微分方程组:
    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解微分方程组代码下载pde1d 用于Octave和MATLAB的一维偏微分方程求解器 pde1d在单个空间变量和时间中求解偏微分方程组。 输入大部分与MATLAB函数pdepe兼容。 许多pdepe示例仅需很小的改动就可以与pde1d一起...
  • 共回答了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解微分方程组代码下载大会17 该存储库包含ASEE 2017论文中描述的MATLAB代码和代码段。 该存储库中的代码需要MATLAB的偏微分方程工具箱(pdetool)。 讲师可以下载该材料并用于其课程。 请适当地引用此工作...
  • matlab解微分组代码下载标称非线性模型预测控制 此存储库中的代码是 Python 中带有软约束的基本非线性模型预测控制 (NMPC) 实现,它使用 Unscented Kalman 滤波器进行状态估计。 NMPC 算法不考虑可能的不确定性,...
  • Matlab 解微分方程;一微分方程的解析解;输入命令: y=dsolve'D2y+4*Dy+29*y=0'y(0)=0,Dy(0)=15'x;二微分方程的数值解;二建立数值解法的一些途径;2使用数值积分;3使用泰勒公式; 1在解n个未知函数的方程组时x0和x均...
  • 数学建模与数学实验 Matlab解微分方程 实验目的 实验内容 2学会用Matlab求微分方程的数值解. 1学会用Matlab求简单微分方程的解析解. 1求简单微分方程的解析解. 4作业. 2求微分方程的数值解. 3 数学建模实例 微分方程...
  • TMU_BME_2013 Topic: 如何使用 MATLAB微分方程组 a.What ? 微分方程 指描述未知函数的导数与自变 量之间的关系的方程未知函数是一元函 数的微分方程称作 常微分方程 未知函数 是多元函数的微分方程称作 偏...
  • 一常微分方程组的符号(4)若边界条件少于方程组的阶数则返回的结果r中会出现任意常数C1C2(6)若没有给定输出参量则在命令窗口显示列表若该命令找不到解析则返回一警告信息同时返回一空的sym对象这时用户可以用...
  • (强烈建议大家有问题多看官方文档,非常有用)介绍一下核心函数常用形式:S = dsolve(eqn,cond)功能介绍:解微分方程eqn,其中eqn是一个符号方程,cond是初值条件(边界条件)。使用diff和==表示微分方程。例如,diff(....

    最近同学毕设需要求解循坏摆的微分方程,我在帮忙过程中学习了一下常微分方程的解析解和数值解的求法,在此分享。

    以下讲解遵循Matlab官方文档提供的方程和写法。

    (强烈建议大家有问题多看官方文档,非常有用)

    介绍一下核心函数

    常用形式:S = dsolve(eqn,cond)

    功能介绍:解微分方程eqn,其中eqn是一个符号方程,cond是初值条件(边界条件)。使用diff和==表示微分方程。例如,diff(y,x)==y表示方程dy/dx=y。通过将eqn指定为这些方程的向量来求解微分方程组。

    1. 一阶常微分方程求解(无初值)

    方程:dy/dt=ay

    代码:

    syms y(t) a; %syms 定义方程用的变量和未知常量(可有可无)。y(t)表示y是关于t的函数,求解t。

    eqn=diff(y,t)==a*y; %diff(y,t)即dy/dt,默认为1阶。

    S=dsolve(eqn) %dsolve()为求解函数,将方程放入即可

    说明:首先定义方程所用变量和未知常量,然后列出微分方程,最后dsolve()求解。

    结果:

    S =

    C2*exp(a*t)

    分析:C2为未定的常数项,需要提供一个初值,才能确定。

    2. 二阶常微分方程求解(无初值)

    方程:dy²/dt²=ay

    代码:

    syms y(t) a; %syms 定义方程用的变量和未知常量。y(t)表示y是关于t的函数,求解t。

    eqn=diff(y,t,2)==a*y; %diff(y,t,2)即dy²/dt²,第三个参数表示阶数,更高阶数一样。

    S=dsolve(eqn) %dsolve()为求解函数,将方程放入即可

    结果:

    S =

    C3*exp(a^(1/2)*t) + C4*exp(-a^(1/2)*t)

    分析:无初值情况下,C3,C4未定,更高阶数解法类推,修改diff()第三个参数即可。

    3. 二阶微分方程求解(有初值)

    方程:dy²/dt²=ay

    代码:

    syms y(t) a; %syms 定义方程用的变量和未知常量。y(t)表示y是关于t的函数,求解t。

    eqn=diff(y,t,2)==a*y; %定义diff(y,t,2)即dy²/dt²,第三个参数表示阶数。

    Dy=diff(y,t); %定义方程Dy为dy/dt;

    cond=[y(0)==5,Dy(0)==1]; %定义初值,t=0时,y=5,dy/dt=1;

    S=dsolve(eqn,cond) %dsolve()为求解函数,将方程放入即可

    说明:一阶微分方程求解时,不需要定义Dy,二阶方程有dy/dt的初值时,需要定义

    结果:

    S =

    (exp(a^(1/2)*t)*(5*a^(1/2) + 1))/(2*a^(1/2)) + (exp(-a^(1/2)*t)*(5*a^(1/2) - 1))/(2*a^(1/2))

    分析:有初值情况下,无未定常数项

    4. 一阶微分方程组求解(有初值)

    方程:dy/dt=z;

    dz/dt=-y

    代码:

    syms y(t) z(t); %syms 定义方程用的变量

    eqn=[diff(y,t)==z,diff(z,t)==-y]; %定义方程组dy/dt=z,dz/dt=-y

    cond=[y(0)==1,z(1)==1]; %定义初值,t=0时,y=5;t=1时,y=1;

    [ySol zSol]=dsolve(eqn,cond) %dsolve()为求解函数,将方程放入即可

    解释:老套路,只不过要定义俩方程,给俩初值

    结果:

    ySol =

    cos(t - 1)/(2*cos(1)) - cos(t + 1)/(2*cos(1)) + cos(t - atan(1/cos(1)))*(1/cos(1)^2 + 1)^(1/2)

    zSol =

    sin(t + 1)/(2*cos(1)) - sin(t - 1)/(2*cos(1)) + (cos(t + atan(cos(1)))*(cos(1)^2 + 1)^(1/2))/cos(1)

    5. 无法求解情况

    方程:dy²/dt²=(1-y²)*dy/dt-y

    代码:

    syms y(t) %syms 定义方程用的变量和常量

    eqn=diff(y,2)==(1-y^2)*diff(y)-y; %定义方程dy²/dt²=(1-y²)*dy/dt-y

    cond=y(0)==1; %定义初值,t=0时,y=1

    S=dsolve(eqn,cond) %dsolve()为求解函数,将方程放入即可

    解释:方程本身看起来不复杂,但是无法求解

    结果:

    警告: Explicit solution could not be found.

    > In dsolve (line 201)

    S =

    [ empty sym ]

    分析:特定解无法求出,结果是空的方程

    6. 无法求解解决方案

    遇到无法求解的情况,dsolve就束手无策了,但是Matlab依旧强大,提供了求数值解的方法,非常有效。

    我会在另一篇博文里面讲解如何对复杂的微分方程进行数值求解,这才是我解决同学毕设问题的方案。(已写,点击此处查看)

    这里先把同学的题目放在这里,大家可以编写解析解求解方案试一下,反正我求解不出来。

    循环摆微分方程如下:

    0e82e1b75c2c12854c80d96067bc7598.png

    给定的初值(w接近0,但实际上不能设置为0):

    2ec4f8e4d345699269aae1866f0a5ddc.png

    我的求解代码如下:

    syms R(t) v(t) w(t);

    eqns=[diff(R,t)==-v/w-0.01,...

    diff(v,t)==(10*9.8-(w^2*R+9.8*sin(t))*exp(0.1*(t+pi/2)))/(w*11),...

    diff(w,t)==w*0.01/R+2*v/R+9.8*cos(t)/(w*R)];

    cond=[R(0)==1,v(0)==0,w(0)==1e3];

    S=dsolve(eqns,cond);

    7. 加油!

    展开全文
  • 1.4.8 微分方程 (ordinary differential equation, ODE) 一引言 微分方程求解的数值算法有多种常用的有Euler欧拉法Runge Kutta(龙格-库塔法 Euler法称一步法用于一阶微分方程 0 x0 x1 x2 xn xn+1 当给定步长时 ...
  • 微分方程组数值求解;主要内容 数值求解常微分方程组函数概述 非刚性/刚性常微分方程问题求解 隐式微分方程组求解 微分代数方程(DAE)与延迟微分方程(DDE)求解 边值问题求解 ;第一节数值求解常微分方程组函数概述;一...
  • 求解微分方程组【x1,y1】 m*D2x1+c*Dx1+(k1-F*k2*(cos(2*pi*n*t1))^2)*x1-F*k2*sin(2*pi*n*t1)*cos(2*pi*n*t1)*y1=m*e*(2*pi*n)^2*cos(2*pi*n*t1)+m*g m*D2y1 +c*Dy1 +...
  • Matlab求解微分方程组

    万次阅读 多人点赞 2017-04-26 16:55:58
    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))...
  • (1)PDEtool(GUI)求解偏微分方程的一般步骤 在Matlab命令窗口输入pdetool,回车,PDE工具箱的图形用户界面(GUI)系统就启动了.从定义一个偏微分方程问题到完成微分方程的定,整个过程大致可以分为六个阶段
  • 数学应用软件作业6 用Matlab求解微分方程()的解析和数值精选注:上机作业文件夹以自己的班级姓名学号命名,文件夹包括如下上机报告和 Matlab 程序。上机报告模板如下:佛山科学技术学院上 机 报 告课程名称 ...
  • Matlab求常微分方程组的数值

    万次阅读 多人点赞 2020-03-08 09:50:50
    上篇博客介绍了Matlab求解常微分方程组解析的方法:博客地址 微分方程组复杂时,无法求出解析时,就需要求其数值,这里来介绍。 以下内容按照Matlab官方文档提供的方程来展开(提议多看官方文档) 介绍一下...
  • matlab求解微分方程组代码 ...基于龙格库塔四阶算法,根据给定初始值计算给定常微分方程组矩阵。 |divert.m | 脚本 | 回转试验 |进行回转试验,得到船舶运行轨迹及航向角速度r的曲线。 |back.m| 脚本|回舵试验 |进
  • 求微分方程的 自牛顿发明微积分以来微分方程在描述事物运动规律上已发挥了...本实验主要探讨如何用 Matlab 来计算微分方程组的数值并重点介绍一个求解微分方程的基本数值解法Euler折线法 问题背景和实验目的 考虑
  • x(t) r(t) 两个关于t的函数 下面两个方程对t求二阶导,...我看MATLAB解微分方程一般都是第一个式子的形式,第二个式子的左边有两个函数的话,能解吗?能的话,该怎么写程序呢? x ''=2x+r ((x^2+r^2)^0.5 )''=2r+x
  • 2.3 常微分方程组的数值解法 知识要点 常微分方程初值问题---ode45,0de23 常微分方程边值问题---bvp4c 微分方程在化工模型中的应用 间歇反应器的计算 活塞流反应器的计算 全混流反应器的动态模拟 定态一维热传导问题...
  • 如何使用MATLAB求解微分方程(;Where ;Where ;When ;方法 特点 / 说明; 在数学中刚性方程是指一个微分方程其数值分析的只有在时间间隔很小时才会稳定只要时间间隔略大其就会不稳定 目前很难去精确地去定义哪些...
  • matlab求解微分方程组代码 Gauss-Elimination A java project for qlz's Linear Algebra Collaborators: @NJUBrocoli @RosalieMiao 一个极其虐待用户的项目 一份极其丢人的文档 妈妈再也不用担心我的线代作业算不对...
  • 目录基本方法求解常微分方程的通求解常微分方程的初边值问题求解常微分方程组求解线性常微分方程组一阶齐次线性微分方程组非齐次线性方程组 基本方法 1.dsolve()函数 求解常微分方程的通 在求通问题 % syms y...
  • matlab求解微分方程

    千次阅读 2020-03-30 00:51:14
    dsolve函数用于求常微分方程组的精确,也称为常微分方程的符号。如果没有初始条件或边界条件,则求出通;如果有,则求出特。 1)函数格式 Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’) 其中...
  • matlab求解微分方程解析

    万次阅读 2019-08-09 20:58:31
    解析 1求解微分方程方程组用函数“dsolve” dsolve(‘方程1’,‘方程2’…‘方程n’,‘初始条件’,‘自变量’) ...%求解微分方程组 dy^2/dx^2+4*dy/dx+29*y=0,y(0)=0,y`(0)=15;的通 y=dsolve('D2y+4*Dy+29*...
  • 练习。使用四阶龙格库塔法求解常微分方程组,通用性较佳。附加一个振动方程求解的案例。振动方程是一个二阶微分方程,转化为两个方程组以后用编写的代码求解。
  • MATLAB求解微分方程

    2021-05-23 20:48:31
    下面介绍如何用 Matlab 来计算微分方程)的数值。 Euler折线法 微分方程的基本数值解法——Euler折线法。 步骤: 分割求解区间,差商代替微商,代数方程 例子: : 等距剖分:a=x0<x1<x2<⋯&l
  • matlab解微分方程

    2013-11-11 09:37:47
    微分方程)的解析解法 精确 Matlab 有专门的函数可以用 本实验将作一定的介绍. 本实验将主要研究微分方程 的数值解法(近似) 重点介绍 Euler 折线法.">我的作业 分享下一 问题背景与实验目的 实际...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 298
精华内容 119
关键字:

matlab解微分方程组

matlab 订阅