前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >数学建模暑期集训5:matlab求解常微分方程/偏微分方程

数学建模暑期集训5:matlab求解常微分方程/偏微分方程

作者头像
zstar
发布于 2022-06-14 03:27:47
发布于 2022-06-14 03:27:47
1.2K00
代码可运行
举报
文章被收录于专栏:往期博文往期博文
运行总次数:0
代码可运行

本篇将介绍用matlab求解常微分方程的数值解和解析解,并非是一种完整的模型,仅仅是一些算法。由于数学原理过于复杂,故不探究背后的数学原理,仅将matlab求解的相关函数加以记录。所有代码均可跑通。

1.Matlab求常微分方程的数值解

1.1非刚性常微分方程的数值解法:

功能函数:ode45,ode23,ode113 例:用RK方法(四阶龙格—库塔方法)求解方程 f=-2y+2x^2+2*x

matlab程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//doty.m
function f=doty(x,y)
f=-2*y+2*x^2+2*x;
end
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//main.m
[x,y]=ode45('doty',[0,0.5],1)

注:[0,0.5]表示求解区间;1为初值列向量

1.2刚性常微分方程的数值解法

功能函数:如ode15s,ode23s,ode23t, ode23tb 使用方法与非刚性类似

1.3高阶微分方程的解法

2.Matlab求常微分方程的解析解

2.1求常微分方程的通解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms x y
diff_equ='x^2+y+(x-2*y)*Dy=0'
dsolve(diff_equ,'x')

注:'x’代表x为自变量,D代表求导

2.2求常微分方程的初边值问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms x y
diff_equ='D3y-D2y=x'
dsolve(diff_equ,'y(1)=8,Dy(1)=7,D2y(2)=4','x')

2.3求常微分方程组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
equ1='D2f+3*g=sin(x)';
equ2='Dg+Df=cos(x)';
[general_f,general_g]=dsolve(equ1,equ2,'x')
[f,g]=dsolve(equ1,equ2,'Df(2)=0,f(3)=3,g(5)=1','x')

3.Matlab求解偏微分方程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%(1)问题定义
g='circleg'; %单位圆
b='circleb1'; %边界上为零条件
c=1;a=0;f=1; %2)产生初始的三角形网格 
[p,e,t]=initmesh(g); %3)迭代直至得到误差允许范围内的合格解
error=[]; err=1;
while err > 0.01, 
    [p,e,t]=refinemesh(g,p,e,t);
    u=assempde(b,p,e,t,c,a,f); %求得数值解
    exact=(1-p(1,:).^2-p(2,:).^2)/4;
    err=norm(u-exact',inf);
    error=[error err];
end %结果显示
subplot(2,2,1),pdemesh(p,e,t);
subplot(2,2,2),pdesurf(p,t,u)
subplot(2,2,3),pdesurf(p,t,u-exact')

4.Matlab pdetool工具箱求解偏微分方程

对于一般的区域,任意边界条件的偏微分方程,我们可以利用Matlab中pdetool提供的偏微分方程用户图形界面解法。pdetool提供的用户图形界面解法的使用步骤如下: (i)在Matlab命令窗口运行pdetool,出现PDE Toolbox界面。 (ii)用鼠标点一下工具栏上的“PDE"按钮,在弹出的对话框中定义偏微分方程。 (iii)用鼠标点一下工具栏上的区域按钮,在下面的坐标系中画出偏微分方程的大致定解区域。 (iv)双击(iii)中画出的大致区域,在弹出的对话框中精确定位定解区域。 (v)用鼠标点一下工具栏上的边界按钮“ ”,画出区域的边界。 (vi)双击坐标系中的区域边界,定义偏微分方程的边界条件。 (vii)用鼠标点工具栏上的剖分按钮,对求解区域进行剖分。 (viii)如果求抛物型或双曲型方程的数值解,还需要通过“solve”菜单下的“parameters…”选项设置初值条件。 (ix)用鼠标点一下工具栏上的“=”按钮,就画出偏微分方程数值解的图形。通过“solve”菜单下的“Export Solution…”选项可以把数值解u输出到Matlab的工作间。 (x)如要画出数值解的三维图形,需要设置“plot"菜单下的“parameters…”选项。

详细操作见 Matlab偏微分方程快速上手:使用pde有限元工具箱求解二维偏微分方程 偏微分方程的数值解(六): 偏微分方程的 pdetool 解法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
matlab求解微分方程组(matlab解微分方程的数值解)
其中,ydot为一个列向量,值分别表示y‘(1)、y‘(2)、y‘(3)的取值,t自因变量,y为因变量,一个y就可以表示因变量组了。事实上,说白了,这个函数就是申明一下变量使t和y,以及y一阶导的右端项为那三个。 接着,编写主函数如下:
全栈程序员站长
2022/08/01
1.7K0
matlab求解微分方程组(matlab解微分方程的数值解)
数学建模--微分方程
在数学建模中,微分方程模型是一种极其重要的方法,广泛应用于各种实际问题的描述和解决。微分方程模型通过建立变量及其变化率之间的关系,可以预测和分析系统的行为。这些模型在科技、工程、生态、环境、人口、交通、医学、经济管理等各个领域都有广泛应用。
用户11315985
2024/10/16
2480
数学建模--微分方程
带你用matlab轻松搞定微分方程
之前过冷水有和大家分享热传导方程求解的方法,其本质上是微分方程的问题。考虑大多数读者对微分方程求解方法比较陌生,所以过冷水本期简单普及一下微分方程的求解问题。
巴山学长
2020/11/03
1.6K0
带你用matlab轻松搞定微分方程
matlab中通过ode函数求解常微分方程附加简单的钟摆模型
求解常微分方程常用matlab中的ode函数,该函数采用数值方法用于求解难以获得精确解的初值问题。ODE是一个包含一个独立变量(例如时间)的方程以及关于该自变量的一个或多个导数。在时域中,ODE是初始值问题,因此所有条件在初始时间t=0指定。
用户9925864
2022/12/16
1.8K0
matlab中通过ode函数求解常微分方程附加简单的钟摆模型
有限元法在非线性偏微分方程中的应用
Mathematica 12 为偏微分方程(PDE)的符号和数值求解提供了强大的功能。本文将重点介绍版本12中全新推出的基于有限元方法(FEM)的非线性PDE求解器。首先简要回顾用于求解 PDE 的 Wolfram 语言基本语法,包括如何指定狄利克雷和诺伊曼边界条件;随后我们将通过一个具体的非线性问题,说明 Mathematica 12的 FEM 求解过程。最后,我们将展示一些物理和化学实例,如Gray-Scott模型和与时间相关的纳维-斯托克斯方程。更多信息可以在 Wolfram 语言教程"有限元编程"中找到,本文大部分内容都以此为基础(教程链接见文末)。
WolframChina
2020/06/24
2.5K0
matlab解常微分方程组数值解法(二元常微分方程组的解法)
上篇博客介绍了Matlab求解常微分方程组解析解的方法:博客地址 微分方程组复杂时,无法求出解析解时,就需要求其数值解,这里来介绍。 以下内容按照Matlab官方文档提供的方程来展开(提议多看官方文档)
全栈程序员站长
2022/08/01
4.8K0
matlab解常微分方程组数值解法(二元常微分方程组的解法)
Matlab通过ode系列函数求解微分方程
MATLAB有很多用于求解微分方程的内置函数。MATLAB包含了用于求解常微分方程(ODE)的函数,微分表达式一般如下
用户9925864
2022/07/27
1.1K0
Matlab通过ode系列函数求解微分方程
matlab-微分方程求解方法汇总
mesh命令设置xy网格。在这种情况下,x在[0,2]和y在[0,1.5]。在这种情况下,网格间距是0.1。让dy =1 -y, dx =1。
用户9925864
2022/07/27
1.2K0
matlab-微分方程求解方法汇总
常微分方程初值问题数值解法MATLAB(泛函微分方程)
高对差分格式的认识和离散化分析问题的技巧,加深对理论课程的学习和理解,为数学专业和信息与计算科学专业其他后继课程的学习打好基础。
全栈程序员站长
2022/07/28
8940
matlab中ode45函数解二阶微分方程_matlab求常微分方程组
求解单变量微分方程的解 x ˙ ( t ) = 2 ∗ x ( t ) \dot{x}(t) = 2 * x(t) x˙(t)=2∗x(t)
全栈程序员站长
2022/11/03
3.7K0
基于神经网络的偏微分方程求解器再度取得突破,北大&字节的研究成果入选Nature子刊
偏微分方程的用处和复杂性相伴而生,例如,想要观察空气在飞机机翼附近的流动二维透视图,建模人员想知道流体在空间中任何一点(也称为流场)以及在不同时间的速度和压力的话,就需要用到偏微分方程。考虑到能量、质量和动量守恒定律,特定的偏微分方程,即Navier-Stokes方程可以对这种流体流动进行建模。
一枕眠秋雨
2024/03/11
1.3K0
基于神经网络的偏微分方程求解器再度取得突破,北大&字节的研究成果入选Nature子刊
神经网络常微分方程 (Neural ODEs) 解析
在本文中,我将尝试简要介绍一下这篇论文的重要性,但我将强调实际应用,以及我们如何应用这种需要在应用程序中应用各种神经网络。
AI科技评论
2019/08/15
7.1K1
使用Maxima求解常微分方程~
含带导数符号或带微分符号的未知函数的方程称为微分方程。 如果在微分方程中未知函数是一个变元的函数,这样的微分方程称为常微分方程。
Enjoy233
2019/03/05
1.6K0
使用Maxima求解常微分方程~
硬核NeruIPS 2018最佳论文,一个神经了的常微分方程
在最近结束的 NeruIPS 2018 中,来自多伦多大学的陈天琦等研究者成为最佳论文的获得者。他们提出了一种名为神经常微分方程的模型,这是新一类的深度神经网络。神经常微分方程不拘于对已有架构的修修补补,它完全从另外一个角度考虑如何以连续的方式借助神经网络对数据建模。在陈天琦的讲解下,机器之心将向各位读者介绍这一令人兴奋的神经网络新家族。
机器之心
2019/01/02
1K0
Matlab 刚性问题求解器-ode23s
ode23s(stiff differential equation solver)是MATLAB中的一种求解刚性(stiff)微分方程的数值方法。刚性微分方程通常具有多个时间尺度差异较大的变量,并且其中至少有一个变量具有快速变化的特性。
用户9925864
2023/09/05
6430
Matlab 刚性问题求解器-ode23s
AI已能求解微分方程,数学是这样一步步“沦陷”的
AI也能解方程了?是的,它们不仅能解方程,还能“找到”方程!今天我们就简单梳理一下机器学习解方程的近些年最新进展。
量子位
2021/02/26
1.4K0
AI已能求解微分方程,数学是这样一步步“沦陷”的
求解微分方程,用seq2seq就够了,性能远超 Mathematica、Matlab
近日,Facebook AI研究院的Guillaume Lample 和Francois Charton两人在arxiv上发表了一篇论文,标题为《Deep Learning for Symbolic Mathematics》。
AI科技评论
2019/12/19
1.1K0
求解微分方程,用seq2seq就够了,性能远超 Mathematica、Matlab
数学建模--MATLAB基本使用
这个是一个线性方程组(属于线性代数的范畴),Ax=b类型的方程,如果使用MATLAB进行求解,就需要分别表示A矩阵(线性方程组未知数前面的系数),b矩阵(表示等式右边的结果),inv是这个软件里面的一个函数,用来进行求解A的逆矩阵,因为Ax=b,那么x=A-1次方乘上b
阑梦清川
2025/02/24
790
数学建模--MATLAB基本使用
AI攻破高数核心,1秒内精确求解微分方程、不定积分,性能远超Matlab
这是Facebook发表的新模型,1秒给出的答案,超越了Mathematica和Matlab这两只付费数学软件30秒的成绩。
量子位
2019/12/20
9640
AI攻破高数核心,1秒内精确求解微分方程、不定积分,性能远超Matlab
微分方程整理
例:求一曲线方程,使其满足过点(1,2),且其上任意一点处的切线斜率为其横坐标的2倍。
算法之名
2023/11/24
1740
微分方程整理
推荐阅读
相关推荐
matlab求解微分方程组(matlab解微分方程的数值解)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文