精华内容
下载资源
问答
  • TMU_BME_2013 Topic: 如何使用 MATLAB微分方程组 a.What ? 微分方程 指描述未知函数的导数与自变 量之间的关系的方程未知函数是一元函 数的微分方程称作 常微分方程 未知函数 是多元函数的微分方程称作 偏...
  • MATLAB求解微分方程及微分方程组方法介绍和例子。Matlab
  • 对于难的常微分方程使用matlab求数值 分两个m文件,一个为调用指令,一个为原函数 可以根据自己的所求方程不同适当修改代码求解 每一步都有注释,一边看注释一边体会才是提升的最好办法
  • MATLAB使用欧拉Euler法求解微分方程组 部分源码 clear;clc c=2/3; %设置c的值 x(1)=0.1; %设置x初值为0.1 y(1)=0.3; %设置y初值为0.3 h=0.05; %设置步长为0.05
  • matlab常微分方程和常微分方程组求解-matlab常微分方程和常微分方程组求解.pdf matlab常微分方程和常微分方程组求解
  • matlab解微分方程

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

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

    求微分方程的解

    自牛顿发明微积分以来,微分方程在描述事物运动规律上已发挥了重要的作用。实际应用问题通过数学建模所得到的方程,绝大多数是微分方程。由于实际应用的需要,人们必须求解微分方程。然而能够求得解析解的微分方程十分有限,绝大多数微分方程需要利用数值方法来近似求解。下面介绍如何用 Matlab 来计算微分方程(组)的数值解。

    Euler折线法

    微分方程的基本数值解法——Euler折线法。

    步骤:
    分割求解区间,差商代替微商,解代数方程

    例子:
    在这里插入图片描述解:

    等距剖分: a = x 0 < x 1 < x 2 < ⋯ < x n − 1 < x n = b a=x_0<x_1<x_2< \cdots <x_{n-1}<x_n=b a=x0<x1<x2<<xn1<xn=b

    步长: h = x k + 1 − x k = ( b − a ) / n , k = 0 , 1 , 2 , . . . , n − 1 h=x_{k+1}-x_k=(b-a)/n,k=0,1,2,...,n-1 h=xk+1xk=(ba)/n,k=0,1,2,...,n1

    y ( x k + 1 ) ≈ y ( x k ) + h y ′ ( x k ) y(x_{k+1})\approx y(x_k)+hy\prime(x_k) y(xk+1)y(xk)+hy(xk)

    取步长 h = (2 - 0)/n = 2/n,得差分方程
    在这里插入图片描述
    当 h=0.4,即 n=5 时,代码如下:

    clear
    a=0;  b=2;
    h=0.4;
    n=(b-a)/h+1; 
    x(1)=0;  y(1)=1;
    for i=1:n-1        
        y(i+1)=y(i)+h*(y(i)+2*x(i)/y(i)^2);
        x(i+1)=x(i)+h;
    end
    y1=((5/3)*exp(3*x)-2*x-2/3).^(1/3);
    plot(x,y1,x,y);
    h = legend('解析解','Euler解');
    

    在这里插入图片描述

    解得:
    y = ( 5 3 e 3 x − 2 x − 2 3 ) 1 / 3 y=(\frac{5}{3}e^{3x}-2x-\frac{2}{3})^{1/3} y=(35e3x2x32)1/3

    Runge-Kutta方法

    龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。

    同样是上面的例子:
    在这里插入图片描述
    在这里插入图片描述

    clear;
    a=0; b=2; h=0.4;
    n=(b-a)/h+1; 
    x(1)=0; y(1)=1;  
    for i=1:n-1
        L1=y(i)+2*x(i)/y(i)^2;
        t=x(i)+h/2;t1=y(i)+h*L1/2;
        L2=t1+2*t/t1^2;t1=y(i)+h*L2/2;
        L3=t1+2*t/t1^2;t1=y(i)+h*L3/2;
        L4=t1+2*(x(i)+h)/t1^2;
        y(i+1)=y(i)+h*(L1+2*L2+2*L3+L4)/6; 
        x(i+1)=x(i)+h;
    end
    plot(x,y)
    

    在这里插入图片描述

    MATLAB自带的ODE求解器

    ODE (常微分方程)

    没有一种算法可以有效地解决所有的 ODE 问题,因此MATLAB 提供了多种ODE求解器,对于不同的ODE,可以调用不同的求解器。
    在这里插入图片描述

    基本语法
    [T,Y] = solver(odefun,tspan,y0)

    其中 y0 为初值条件,tspan为求解区间;Matlab在数值求解时自动对求解区间进行分割,T (向量) 中返回的是分割点的值(自变量),Y (向量) 中返回的是解函数在这些分割点上的函数值。
    solver 为Matlab的ODE求解器(可以是 ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb)

    展开全文
  • 使用matlab解决二元二阶微分方程组求解问题,并画出包括极坐标图在内的多幅变量间的关系图
  • 利用 MATLAB 求解微分方程数值 目录 1. 内容简介 把高等工程数学看了一遍增加对数学内容的了解对其中数值解法比较感兴趣 这大概是因为在其它各方面的学习和研究中经常会遇到数值解法的问题理解模型然后列出 微分...
  • 主要内容 数值求解微分方程组函数概述 非刚性/刚性常微分方程问题求解 隐式微分方程组求解 微分代数方程(DAE)与延迟微分方程(DDE)求解 边值问题求解 ;第一节数值求解微分方程组函数概述;一 概述;二初值问题求解...
  • matlab求解微分方程组代码 计算方法(calculation methodb) 该项目是《计算方法》一书中提到的经典方法和算法的matlab程序实现,包含代码详解和运行过程。 :grinning_face_with_big_eyes: 1.简介 2.线性方程组的...
  • MATLAB程序分享使用欧拉Euler法求解微分方程组源程序-MATLAB使用欧拉Euler法求解微分方程组 源程序代码.rar 程序代码见附件,拿资料请顺便顶个贴~~ 如果下载有问题,请加我 qq 1530497909,给你在线传
  • 本文是自己写的关于怎样利用MATLAB求解微分方程数值的,文中从Euler法讲起,最后总结了常用的odeXX的用法及其原理,其中包含各个函数怎样使用的MATLAB代码
  • MATLAB使用欧拉Euler法求解微分方程组 源程序代码
  • 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)用*绘制(下面的两条曲线重合了)





    展开全文
  • 求解微分方程组【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求解微分方程(;Where ;Where ;When ;方法 特点 / 说明; 在数学中刚性方程是指一个微分方程其数值分析的只有在时间间隔很小时才会稳定只要时间间隔略大其就会不稳定 目前很难去精确地去定义哪些...
  • matlab求解微分方程

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

    matlab求解微分方程

    1.解析解

    dsolve 函数
    dsolve函数用于求常微分方程组的精确解,也称为常微分方程的符号解。如果没有初始条件或边界条件,则求出通解;如果有,则求出特解。
    1)函数格式

    Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)

    其中,‘eq1,eq2,…’:表示微分方程或微分方程组;

            ’cond1,cond2,…’:表示初始条件或边界条件;
    
            ‘Name’:表示变量。没有指定变量时,matlab默认的变量为t;
    

    D: 微分符号;D2表示二阶微分,D3表示三阶微分,以此类推。
    例1
    在这里插入图片描述
    在这里插入图片描述
    例2
    在这里插入图片描述
    在这里插入图片描述

    2.数值解

    这里利用ode45函数求解
    1)函数格式

    [T,Y] = ode45(‘odefun’,tspan,y0)

    [T,Y] = ode45(‘odefun’,tspan,y0,options)

    [T,Y,TE,YE,IE] = ode45(‘odefun’,tspan,y0,options)

    sol = ode45(‘odefun’,[t0 tf],y0…)

    其中: odefun是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名;

          tspan 是求解区间 [t0 tf],或者一系列散点[t0,t1,...,tf];
    
          y0 是初始值向量
    
          T 返回列向量的时间点
    
          Y 返回对应T的求解列向量
    
          options 是求解参数设置,可以用odeset在计算前设定误差,输出参数,事件等
    

    在编写fun函数的时候,需要将方程化为标准形式
    在这里插入图片描述
    例1
    在这里插入图片描述
    标准化:
    在这里插入图片描述
    fun函数:

    function dydt= fun1(t,y)
    dydt=zeros(2,1);  %初始化dydt,使其成为列数组
    %参数初始化
    %设y(1)=y,y(2)=y',dydt(1)=y',dydt(2)=y''
    dydt(1)=y(2);
    dydt(2)=-t*y(1)+exp(t)*y(2)+3*sin(2*t);
    end
    

    主函数:

    %数值解
    tspan=[3.9 4];
    y0=[8 2];%初值
    [t,y]=ode45('fun1',tspan,y0);
    plot(t,y(:,1),'-o');  %结果中y有两列,第一列为y,第二列为y',此处取第一列
    
    

    例2
    在这里插入图片描述
    fun函数:

    function dy = fun2(t,y)
    dy=zeros(2,1);
    %%%设u(t),v(t)为0
    c=2;
    a=2;
    d=3;
    b=4;
    %设y(1)=x,y(2)=y,dy(1)=x',dy(2)=y'
    dy(1)=-c*y(1)*y(2)-a*y(1);
    dy(2)=-d*y(1)*y(2)-b*y(2);
    
    end
    

    主函数:

    tspan=[0 10];
    y0=[2 2];%初值
    [t,y]=ode45('fun2',tspan,y0);
    plot(y(:,1),y(:,2));
    
    展开全文
  • 基于Matlab常系数线性微分方程组求解.pdf
  • Matlab求常微分方程组的数值

    万次阅读 多人点赞 2020-03-08 09:50:50
    上篇博客介绍了Matlab求解微分方程组解析的方法:博客地址 微分方程组复杂时,无法求出解析时,就需要求其数值,这里来介绍。 以下内容按照Matlab官方文档提供的方程来展开(提议多看官方文档) 介绍一下...

    上篇博客介绍了Matlab求解常微分方程组解析解的方法:博客地址
    微分方程组复杂时,无法求出解析解时,就需要求其数值解,这里来介绍。
    以下内容按照Matlab官方文档提供的方程来展开(提议多看官方文档)

    介绍一下核心函数ode45()

    一般形式:[t,y] = ode45(odefun,tspan,y0) 其中 tspan = [t0 tf]
    功能介绍:求微分方程组 y′=f(t,y) 从 t0 到 tf 的积分,初始条件为 y0。解数组 y 中的每一行都与列向量 t 中返回的值相对应。

    1. 一阶微分方程求解(简单调用即可)

    方程:y’=2*t
    代码

    tspan=[1 6]; %定义自变量x的取值空间为1-6
    y0=0;%定义因变量的初值,当x=1(x取值空间的第一个数)时,y0=0
    [t,y]=ode45(@(t,y) 2*t,tspan,y0); %定义函数y'=2*t,使用ode45求解
    plot(t,y,'-o'); %绘制求得的数值曲线
    

    说明:简单的odefun参数就是这个形式,@(x,y) fun 中间是空格,不能用逗号
    结果
    在这里插入图片描述

    2. 二阶微分方程求解(引入函数文件)

    方程:范德波尔方程 y1’’-u(1-y1²)*y1’+y1=0;(这里设u=1)
    代码
    定义输入的方程,以函数形式定义

    function dydt=odefun(t,y)
    %二阶方程为y1''-(1-y1²)*y1'+y1=0;
    %降阶为两个方程:y1'=y2; 
    %               y2'=(1-y1²)*y2-y1;
    %t虽然没有使用,但必须要作为参数写入
    dydt=[y(2);(1-y(1)^2)*y(2)-y(1)];
    

    求解作图

    tspan=[0 20]; %定义自变量x的取值空间为0-20
    y0=[2;0];%定义因变量的初值,当x=0时,y1=2,y2=y1'=0;
    [t,y]=ode45(@odefun,tspan,y0); %使用ode45求解
    %%下面为作图过程,不解释
    plot(t,y(:,1),'-o',t,y(:,2),'-o')
    title('Solution of van der Pol Equation (\mu = 1) with ODE45');
    xlabel('Time t');
    ylabel('Solution y');
    legend('y_1','y_2')
    

    说明:先进行降阶,使y2=y1’,这时候y2’=y1’’,然后把两个方程写成列向量形式就行了
    结果
    在这里插入图片描述

    3. 求解微分方程组(和2类似)

    这里就和求解二阶方程类似的,只不过不需要降阶,仍旧需要一个函数来定义方程组。我们这里不用官方文档的例子,用同学的循坏摆问题来进行演示。
    方程在这里插入图片描述
    给定的初值(w接近0,但实际上不能设置为0):
    在这里插入图片描述
    代码
    定义输入的方程

    function dRvw=func(t,Rvw)
    %% 函数功能:为ode45提供微分方程
    %输入:t:时间序列,就是θ;Rvw:因变量,Rvw(1)代表R,Rvw(2)代表v,Rvw(3)代表w
    %输出:dRvw:因变量的一阶微分,dRvw(1)代表dR,dRvw(2)代表dv,dRvw(3)代表dw
    %% 初始化因变量的一阶微分,3×1的向量
    dRvw=zeros(3,1);
    %% 参数初始化
    r=0.01;u=0.1;g=9.8;M=10;m=1;
    %% 输入微分方程式
    dRvw(1)=-Rvw(2)/Rvw(3)-r;
    dRvw(2)=(M*g-(m*Rvw(3)^2*Rvw(1)+m*g*sin(t)) *exp(u*(t+pi/2)))/(Rvw(3)*(M+m));
    dRvw(3)=Rvw(3)*r/Rvw(1)+2*Rvw(2)/Rvw(1)+g*cos(t)/(Rvw(3)*Rvw(1));
    

    求解作图

    %% 参数初始化 start_Theta是θ的初始值 end_Theta是θ的结束值
    %R是半径初值;v是线速度初值;w是角速度初值
    start_Theta=0;end_Theta=2*pi;R=1;v=0;w=1e-5;
    %% 使用ode45方法计算微分方程组func的数值解
    %func是带有方程组的函数 
    %[start_Theta end_Theta]是自变量范围
    %[R;v;w]是方程初值
    %T是自变量的数组,Rvw是对应的因变量的数值。Rvw(:,1)=R;Rvw(:,2)=v;Rvw(:,3)=w;
    [T,Rvw]=ode45(@func,[start_Theta end_Theta],[R;v;w]);
    %% 组合自变量和因变量。TRvw(:,1)=θ;TRvw(:,2)=R;TRvw(:,3)=v;Trvw(:,4);
    TRvw=[T,Rvw];
    %% 绘制自变量-因变量图像.figure1是R-θ,figure2是v-θ,figure3是w-θ
    plot(T,Rvw(:,1),'-o',T,Rvw(:,2),'-o',T,Rvw(:,3),'-o')
    title('自变量-因变量图像');
    xlabel('Angle θ');
    ylabel('Solution');
    legend('R','v','w')
    

    说明:注释的应该是比较清楚的,把三个方程写成列向量的形式就行

    PS:有些人和我说不能运行,然后我看了他们出错的原因,有点儿哭笑不得。出错的基本上都是运行上面的dRvw=func(t,Rvw)这个函数的。说明一下,这是有参数的函数,不给参数不能直接运行的。下面的求解作图脚本才是需要运行的哈,它调用了函数,才得到的结果。如果大家还发现什么问题,欢迎私戳或评论。

    PS+ 有了PS之后,还是很多人问我参数的问题,我在这里直接把文件给大家:cupt.zip
    提取码:6k8n。
    解压后,有两个文件,大家直接运行cupt.m即可。

    结果
    在这里插入图片描述

    4. 更多形式

    讲到这里,大部分我们用到的微分方程形式都可以求解了,Matlab还支持带有时变项和额外参数的微分方程求解,这里不再赘述,大家可以自行参阅官方文档。

    展开全文
  • 非稳态的偏微分方程组是一个比较难解决的问题,也是在热质交换等方面的常常遇到的问题,因此需要一套程序来解决非稳态偏微分方程组的数值
  • 练习。使用四阶龙格库塔法求解微分方程组,通用性较佳。附加一个振动方程求解的案例。振动方程是一个二阶微分方程,转化为两个方程组以后用编写的代码求解
  • 微分方程组的龙格库塔公式求解matlab微分方程组的龙格-库塔公式求解matlab版南京大学 王寻1. 一阶常微分方程组考虑方程组   y'f x,y,z , y x y 0 0   z'g x,y,z , z x z 0 0其经典...
  • MATLAB求解微分方程

    千次阅读 2020-02-09 15:48:28
    微分方程)的解析命令: dsolve('方程1','方程2',...'方程n','初始条件','自变量') 注:字母D表示求微分,D2、D3等表示求高阶微分,D后所跟的字母为因变量,自变量可以指定或由系统规则选定为缺省。 如,...
  • 文章目录前言求解微分方程组求解矩阵微分方程组总结 前言 上一篇我已经详细讲过求微分方程,这一篇是对上一篇的补充,也就是变得稍微复杂一点,就是要求方程组了,如果你学会了上一篇,那么求解方程组其实并不难了。...
  • 利用 matlab 编写 S 函数求解微分方程 自动化专业综合设计报告 自动化专业综合设计报告 设计题目利用 matlab 编写 S 函数求解微分方程 所在实验室 自动化系统仿真实验室 指导教师 郭卫平 学生姓名 律迪迪 班级 文自 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,752
精华内容 1,900
关键字:

利用matlab求解微分方程组

matlab 订阅