-
Matlab求解微分方程(组)及偏微分方程(组)
2020-05-01 06:30:26Matlab求解微分方程(组)及偏微分方程(组) -
Matlab求解微分方程(组)及偏微分方程(组).pdf
2020-03-07 17:32:05(1)PDEtool(GUI)求解偏微分方程的一般步骤 在Matlab命令窗口输入pdetool,回车,PDE工具箱的图形用户界面(GUI)系统就启动了.从定义一个偏微分方程问题到完成解偏微分方程的定解,整个过程大致可以分为六个阶段 -
偏微分方程—matlab(汇编)_matlab算偏微分方程组
2020-07-30 00:33:31精品文档 基础知识 偏微分方程的定解问题 各种物理性质的定常即不随时间变化过程都可用椭圆型方程来描述其最典型最简单的形式是泊松 (Poisson) 方程 2 2 u u u 2 2 f (x , y) 1 x y 特别地当 f ( x, y) 0时即为... -
Matlab偏微分方程求解方法
2019-05-15 10:19:14非稳态的偏微分方程组是一个比较难解决的问题,也是在热质交换等方面的常常遇到的问题,因此需要一套程序来解决非稳态偏微分方程组的数值解。 -
如何使用MATLAB求解微分方程组_非线性微分方程组求解
2020-07-09 08:31:36TMU_BME_2013 Topic: 如何使用 MATLAB 求 解常微分方程组 a.What ? 微分方程 指描述未知函数的导数与自变 量之间的关系的方程未知函数是一元函 数的微分方程称作 常微分方程 未知函数 是多元函数的微分方程称作 偏... -
matlab偏微分方程工具箱求解
2020-12-14 18:13:50偏微分方程组的matlab求解语句 该命令用以求解以下的PDEPDEPDE方程式: c(x,t,u,∂u∂x)∂u∂t=x−m∂(xmf(x,t,u,∂u∂x))∂x+s(x,t,u,∂u∂x) c(x,t,u,\frac{\partial u }{\partial x})\frac{\partial u}{\...Matlab的偏微分方程工具箱求解方法
这一节我们主要用matlab自带的偏微分方程的工具箱函数求解
一.偏微分方程组的matlab求解语句
该命令用以求解以下的方程式:
其中:。偏微分方程的初解:
边界条件为:
下面介绍求解此类方程的函数用法:
对称参数。 位置向量,。
时间变量的向量,。
用户提供的函数文件。函数格式如下:
也就是说我们要自己设置相应的输出,且它们都是行向量。 求解的起始值,格式为。且是行向量。
提供边界条件函数,格式:
左边界和的行向量。右边界和的行向量。 求解器相关解法参数,见。
多维向量输出,为的输出,而表示在时候 的的值。
要获得特定位置和时间的解用以下命令:
第个输出在时间处的解。
在指定下对应指定位置的值。
相对应的。
二.具体的用法
1.求解以下偏微分方程(解析解为 ):
其中,满足以下条件:
改写以上偏微分方程到标准形式:
具体的实现代码如下:function first %计算从t:0~3的值 x = linspace(0,1,20); t = linspace(0,3,60); subplot(121); sol = pdepe(0,@firstPdefun,@firstIcfun,@firstBcfun,x,t); u = surf(x,t,sol(:,:,1)); title('微分方程数值解'); xlabel('x'); ylabel('t'); zlabel('u') subplot(122); [X,T] = meshgrid(x,t); U = exp(-T).*sin(pi*X); surf(X,T,U); title('微分方程解析解'); end %方程段 function [c,f,s] = firstPdefun(x,t,u,dudx) c = pi^2; f = dudx; s = 0; end %起始值条件段 function u = firstIcfun(x) u = sin(pi*x); end %边界条件段 function [pl,ql,pr,qr] = firstBcfun(xl,ul,xr,ur,t); pl = ul; ql = 0; pr = pi*exp(-t); qr = 1; end
对比一下发现几乎和解析解一摸一样!
2.求解以下偏微分方程的数值解:
初值条件:
边值条件:
化简上面的偏微分方程为标准形式:
化简左边界条件也有:
化简右边界条件有:
最后附上整个代码:function second xmesh = linspace(0,1,20); tspan = linspace(0,3,60); sol = pdepe(0,@secondPdefun,@secondPdein,@secondPdebc,xmesh,tspan); subplot(121); surf(xmesh,tspan,sol(:,:,1)); xlabel('x'); ylabel('t'); zlabel('u(1)'); title('u(1)-x-t图像'); subplot(122); surf(xmesh,tspan,sol(:,:,2)); xlabel('x'); ylabel('t'); zlabel('u(2)'); title('u(2)-x-t图像'); end function [c,f,s] = secondPdefun(x,t,u,dudx) c = [1 1]'; f = [0.024*dudx(1) 0.170*dudx(2)]'; y = u(1) - u(2); stemp = exp(5.73*y) - exp(-11.46*y); s = [-stemp stemp]'; end function up = secondPdein(x,t,u,dudx) up = [1 0]'; end function [pl ql pr qr] = secondPdebc(xl,ul,xr,ur,t) pl = [0 ul(2)]'; ql = [1 0]'; pr = [ur(1)-1 0]'; qr = [0 1]'; end
最后的结果是:
-
matlab 三弯矩方程_数值计算(三)matlab求解一般的偏微分方程组
2020-12-31 08:28:461 pdepe()函数的一般调用格式 [1]sol=pdepe(m,@pdefun,@pdeinit,@pdebound,x,t),其中pdefun是偏微分方的描述函数,标准形式为: 初始条件满足: 边界条件满足: 说明:a,b表示上、下边界;ua,ub是上、下边界的近似...1 pdepe()函数的一般调用格式 [1]
sol=pdepe(m,@pdefun,@pdeinit,@pdebound,x,t),其中pdefun是偏微分方的描述函数,标准形式为:
初始条件满足:
边界条件满足:
说明:
- a,b表示上、下边界;
- ua,ub是上、下边界的近似解;
- pa,qa对应xa上计算的p,q值;
- pb,qb对应xb上计算的p,q值;
2 一个实例
3 边界条件限定描述
保证d(u1a)/dt;=0,u2a=0,u1b=1,d(u2b)/dt=0 4 结果展示
4求解代码
function sys=pdepeA() %{ 程序功能: 1、计算一般的偏微分方程组 2、pdepe()函数的一般调用格式是: sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t),其中pdefun是偏微分方程的描述函数 有固定的格式。 3、pdeic是偏微分方程的初始条件,初始条件的描述为u(x,t0)=u0, 可以使用u0=pde(x); 4、pdebc是偏微分方程的边界条件,它的标准形式为: p(x,t,u)+q(x,t,u).*f(x,t,u,ux)=0,则可以用[pa, qa, pb, qb]=pdebc(x,t,u,ux),a和b表示下边界和上边界。 参考链接: https://jingyan.baidu.com/article/af9f5a2d15494e43140a45e3.html %} x=0:0.05:1; t=0:0.05:2; m=0; sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t); u1=sol(:,:,1); u2=sol(:,:,2); figure surf(x,t,u1) title('u1(x,t)') xlabel('Distance x') ylabel('Time t') figure surf(x,t,u2) title('u2(x,t)') xlabel('Distance x') ylabel('Time t') sys=[]; end %方程形式 function [c, f, s]=pdefun(x, t, u, ux) c=[1;1] ; y=u(1)-u(2); F=exp(5.73*y)-exp(-11.46*y); s=F*[-1;1]; f=[0.024*ux(1) ;0.017*ux(2) ]; end %初始条件 function [u0]=pdeic(x) u0=[1 ;0]; end %边界条件 function [pa, qa, pb, qb]=pdebc(xa ,ua ,xb ,ub, t) pa=[0; ua(2)]; qa=[1; 0]; pb=[ub(1)-1; 0]; qb=[0; 1]; end
参考
- ^链接 https://jingyan.baidu.com/article/af9f5a2d15494e43140a45e3.html
-
偏微分方程 python_有关一个偏微分方程组的求解?
2020-12-24 14:04:14写了个MATLAB的小程序,用特征线法求解 偏微分方程组。[XX,TT]=meshgrid(0:0.4:4,0:0.1:1);N=size(XX,2);T=size(XX,1);u1=zeros(T,N);u2=zeros(T,N);dx=0.4;dt=0.1;ds=0.1;u10=1:N;u20=(N:-1:1); % initial valueu...题目写的看不懂。我也瞎答。
写了个MATLAB的小程序,用特征线法求解 偏微分方程组。
[XX,TT]=meshgrid(0:0.4:4,0:0.1:1);
N=size(XX,2);
T=size(XX,1);
u1=zeros(T,N);
u2=zeros(T,N);
dx=0.4;
dt=0.1;
ds=0.1;
u10=1:N;u20=(N:-1:1); % initial value
u10t=1:T;u20t=1:T; % value at a given node point
u1(1,:)=u10;
u2(1,:)=u20;
u1(:,1)=u10t;
u2(:,1)=u20t;
for tt=2:T % 特征线法求解线性偏微分方程组
for ii=2:N
u1(tt,ii)=(-400*u1(tt-1,ii-1)+400*u2(tt-1,ii-1))*ds;
u2(tt,ii)=(0.35*u1(tt-1,ii)-0.35*u2(tt-1,ii))*dt;
end
end
quiver(XX,TT,u1,u2)
-
DuFort-Frankel格式求解椭圆-抛物型偏微分方程组
2020-05-13 08:00:57DuFort-Frankel格式求解椭圆-抛物型偏微分方程组,matlab程序,其中椭圆用积分公式,抛物用DuFort-Frankel格式,多多指教 -
matlab 解方程组_一文读懂MATLAB微分方程
2020-12-04 15:01:23MATLAB 提供了多种数值算法来求解各种微分方程:初始值问题边界值问题时滞微分方程偏微分方程初始值问题vanderpoldemo是用于定义 van der Pol 方程的函数type vanderpoldemofunction dydt = vanderpoldemo(t,y,Mu)...此教程说明如何使用 MATLAB 构造几种不同类型的微分方程并求解。MATLAB 提供了多种数值算法来求解各种微分方程:
初始值问题
边界值问题
时滞微分方程
偏微分方程
初始值问题
vanderpoldemo
是用于定义 van der Pol 方程的函数type vanderpoldemo
function dydt = vanderpoldemo(t,y,Mu)
dydt = [y(2); Mu*(1-y(1)^2)*y(2)-y(1)];该方程写作包含两个一阶常微分方程 (ODE) 的方程组。将针对参数 μ 的不同值计算这些方程。为了实现更快的积分,您应该根据 μ 的值选择合适的求解器。
当 μ=1 时,任何 MATLAB ODE 求解器都能有效地求解 van der Pol 方程。
ode45
求解器就是其中之一。该方程在域 [0,20] 中求解,初始条件为 y(0)=2 和 dydtt=0=0。tspan = [0 20];
y0 = [2; 0];
Mu = 1;
ode = @(t,y) vanderpoldemo(t,y,Mu);
[t,y] = ode45(ode, tspan, y0);% Plot solution
plot(t,y(:,1))
xlabel('t')
ylabel('solution y')
title('van der Pol Equation, \mu = 1')对于较大的 μ,问题将变为刚性。此标签表示拒绝使用普通方法计算的问题。这种情况下,要实现快速积分,需要使用特殊的数值方法。
ode15s
、ode23s
、ode23t
和ode23tb
函数可有效地求解刚性问题。当 μ=1000 时,van der Pol 方程的求解使用
ode15s
,初始条件相同。您需要将时间范围大幅度延长到 [0,3000] 才能看到解的周期性变化。tspan = [0, 3000];
y0 = [2; 0];
Mu = 1000;
ode = @(t,y) vanderpoldemo(t,y,Mu);
[t,y] = ode15s(ode, tspan, y0);
plot(t,y(:,1))
title('van der Pol Equation, \mu = 1000')
axis([0 3000 -3 3])
xlabel('t')
ylabel('solution y')边界值问题
bvp4c
和bvp5c
可以求解常微分方程的边界值问题。示例函数
twoode
将一个微分方程写作包含两个一阶 ODE 的方程组。此微分方程为type twoode
function dydx = twoode(x,y)
%TWOODE Evaluate the differential equations for TWOBVP.
dydx = [ y(2); -abs(y(1)) ];函数
twobc
求解该问题的边界条件为:y(0)=0 和 y(4)=−2。type twobc
function res = twobc(ya,yb)
res = [ ya(1); yb(1) + 2 ];在调用
bvp4c
之前,您必须为要在网格中表示的解提供一个猜想值。然后,求解器就像对解进行平滑处理一样修改网格。bvpinit
函数以您可以传递给求解器bvp4c
的形式设定初始猜想值。对于[0 1 2 3 4]
的网格以及 y(x)=1 和 y'(x)=0 的常量猜想值,对bvpinit
的调用为:solinit = bvpinit([0 1 2 3 4],[1; 0]);
利用这个初始猜想值,您可以使用
bvp4c
对该问题求解。使用deval
计算bvp4c
在某些点返回的解,然后绘制结果值。sol = bvp4c(@twoode, @twobc, solinit);
xint = linspace(0, 4, 50);
yint = deval(sol, xint);
plot(xint, yint(1,:));
xlabel('x')
ylabel('solution y')
hold on此特定的边界值问题实际上有两种解。通过将初始猜想值更改为 y(x)=−1 和 y'(x)=0,可以求出另一个解。
solinit = bvpinit([0 1 2 3 4],[-1; 0]);
sol = bvp4c(@twoode,@twobc,solinit);
xint = linspace(0,4,50);
yint = deval(sol,xint);
plot(xint,yint(1,:));
legend('Solution 1','Solution 2')
hold off时滞微分方程
dde23
、ddesd
和ddensd
可以求解具有各种时滞的时滞微分方程。示例ddex1
、ddex2
、ddex3
、ddex4
和ddex5
构成了这些求解器的迷你使用教程。ddex1
示例说明如何求解微分方程组y′1(t)=y1(t−1)y′2(t)=y1(t−1)+y2(t−0.2)y′3(t)=y2(t).
您可以使用匿名函数表示这些方程
ddex1fun = @(t,y,Z) [Z(1,1); Z(1,1)+Z(2,2); y(2)];
问题的历史解(t≤0 时)固定不变:
y1(t)=1y2(t)=1y3(t)=1.
您可以将历史解表示为由 1 组成的向量。
ddex1hist = ones(3,1);
采用二元素向量表示方程组中的时滞。
lags = [1 0.2];
将函数、时滞、历史解和积分区间 [0,5] 作为输入传递给求解器。求解器在整个积分区间生成适合绘图的连续解。
sol = dde23(ddex1fun, lags, ddex1hist, [0 5]);
plot(sol.x,sol.y);
title({'An example of Wille and Baker', 'DDE with Constant Delays'});
xlabel('time t');
ylabel('solution y');
legend('y_1','y_2','y_3','Location','NorthWest');偏微分方程
pdepe
使用一个空间变量和时间对偏微分方程求解。示例pdex1
、pdex2
、pdex3
、pdex4
和pdex5
构成了pdepe
的迷你使用教程。此示例问题使用函数
pdex1pde
、pdex1ic
和pdex1bc
。pdex1pde
定义微分方程type pdex1pde
function [c,f,s] = pdex1pde(x,t,u,DuDx)
%PDEX1PDE Evaluate the differential equations components for the PDEX1 problem.
c = pi^2;
f = DuDx;
s = 0;pdex1ic
设置初始条件type pdex1ic
function u0 = pdex1ic(x)
%PDEX1IC Evaluate the initial conditions for the problem coded in PDEX1.
u0 = sin(pi*x);pdex1bc
设置边界条件u(0,t)=0,
πe−t+∂∂xu(1,t)=0.
type pdex1bc
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t)
%PDEX1BC Evaluate the boundary conditions for the problem coded in PDEX1.
pl = ul;
ql = 0;
pr = pi * exp(-t);
qr = 1;pdepe
需要提供空间离散x
和时间向量t
(您要获取解快照的时间点)。使用包含 20 个节点的网格求解此问题,并请求五个t
值的解。提取解的第一个分量并绘图。x = linspace(0,1,20);
t = [0 0.5 1 1.5 2];
sol = pdepe(0,@pdex1pde,@pdex1ic,@pdex1bc,x,t);
u1 = sol(:,:,1);
surf(x,t,u1);
xlabel('x');
ylabel('t');
zlabel('u');关注公众号:MATLAB基于模型的设计 (ID:xaxymaker) ,每天推送MATLAB学习最常见的问题,每天进步一点点,业精于勤荒于嬉。
可保存后扫码关注哦!
-
matlab常微分方程数值求解
2020-09-01 21:08:13首先,凡含有参数,未知函数和未知函数导数 (或微分) 的方程,称为微分方程,有时简称为方程,未知函数是一元函数的微分方程称作常微分方程,未知函数是多元函数的微分方程称作偏微分方程。微分方程中出现的未知函数... -
Matlab中的PDEPE求解"瞬态型"或"发展型"非线性偏微分方程组
2016-02-11 19:03:11背景求解真实问题中建模得到的非线性偏微分方程组, 尽可能少手写代码,如果用matlab, 可能的选项很有限。pdetoolbox有限元方法能够求解一些,但是要求对微分方程的类型以及pdetoolbox特有的书写方式非常熟悉,并能够把... -
matlab偏微分方程数值解误差_无网格法与Matlab程序设计(9)——无网格径向基插值法:原理...
2020-11-24 07:23:22参考资料G.R.Liu Y.T.GU著 王建明 周学军译 《无网格法理论及程序设计》数值实现Matlab 2019a前情回顾形式主义的居士:无网格法理论与Matlab程序设计(1)——概述zhuanlan.zhihu.com地球物理局 地震波场模拟实验... -
matlab中的微分方程-matlab中的微分方程.doc
2019-08-13 15:33:07而那些对更加多的一般的偏微分方程感兴趣的可以利用PDE工具箱。 更多的matlab的综合应用技术的信息请参阅Solution8314。 更多的有关matlab采用的各种求解器的算法的信息请查看下面的URLs: ● ODE 函数 ... -
偏微分方程数值解法python_利用MATLABpdetool解偏微分方程——以数学建模2018A题为例...
2020-12-31 08:41:052.1 建立偏微分方程组 2.2 利用PDE Modeler求解 2.3 误差分析 附录 MATLAB代码1 PDE Modeler使用方法介绍物理学中的偏微分方程(PDE)无处不在,如热传导方程、扩散方程、电磁场方程,甚至量子力学中也能大量... -
运用偏微分方程(PDE)方法进行图像处理的matlab程序,包括图像滤波、图像分割、插值、图像增强、恢复及一些...
2019-08-19 15:10:52运用偏微分方程(PDE)方法进行图像处理的matlab程序,包括图像滤波、图像分割、插值、图像增强、恢复及一些方程组求解等在偏微分方法处理图像处理 -
偏微分方程数值解的Matlab 实现
2013-05-31 20:22:36工程中有许多问题可以归结为偏微分方程问题,如弹塑性力学中研究对象(结构、边坡等)内部的应力应变问题、地下水渗流问题等。这些由偏微分方程及边界条件、初始条件等组合...Matlab采用有限元法求解偏微分方程的数值解 -
运用偏微分方程(PDE)方法进行图像处理的matlab程序
2020-04-28 10:19:38运用偏微分方程(PDE)方法进行图像处理的matlab程序,包括图像滤波、图像分割、插值、图像增强、恢复及一些方程组求解等在偏微分方法处理图像处理领域常用且重要的处理程序 -
差分方程的阻滞增长模型 matlab_一阶非线性偏微分方程怎么用matlab编程
2020-12-08 11:08:47知乎大佬们好,小弟给你磕头了。小弟研二了,没项目没课题(学校不行导师我就不乱说了,反正是不怎么管我)...有没有哪位大佬,能给小弟指明道路,给我一个和图片类似的偏微分方程组相似的MATLAB程序让我参考一下。... -
偏微分方程(PDEs)的MATLAB数值解法
2009-06-08 09:27:15MATLAB 提供了两种方法解决PDE 问题,一是pdepe()函数,它可以求解一般的...二阶PDE 问题,并且不能解决偏微分方程组,但是它提供了GUI 界面,从繁杂的编程中解脱出来了,同时 可 以通过File->Save As 直接生成M 代码 -
模型 matlab_基于偏微分方程的图像分割 Snake模型 Matlab实现
2021-01-12 06:20:57一、Snake模型[3]的数字原理来自[1]1987年Kass等人共同发表了题为“Snake:Active contour models”的论文,首次引进了变分法,提出了运用活动轮廓模型进行图像分割的思想....Kass等提出的原始Snakes模型由一组控制点:... -
用matlab解常微分方程
2013-11-11 09:37:47另一方面 能够求解的微分方程也是十分有限的 特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法 既要研究微分方程(组)的解析解法(精确解) 更要研究微分方程(组)的数值解法(近似解... -
二阶偏微分方程组 龙格库塔法_数值方法(MATLAB版)(原书第3版)[Numerical Methods Using MATLAB,Third ...
2021-01-30 16:30:55摘要本书特点强大的图形表达宽泛的计算方法重点科学领域的重要算法大量可运行的实例数值方法(MATLAB版)(原书第3版)[Numerical Methods Using MATLAB,Third Edition] 内容简介这本全面的参考资料针对所有科学与工程... -
Matlab中求解双曲椭圆一维初边值偏微分方程(组)的pdepe
2014-03-09 09:51:32http://www.mathworks.cn/help/matlab/ref/pdepe.html;jsessionid=143095f6a8df9e5c4b9dfd0f8be0 有很多默认的模式,还不如自己手动解; pdepe Solve initial-boundary value problems for ... -
matlab二维图像分割_基于偏微分方程的图像分割 Snake模型 Matlab实现
2020-12-04 16:57:59一、Snake模型[3]的数字原理来自[1]1987年Kass等人共同发表了题为“Snake:Active contour models”的论文,首次引进了变分法,提出了运用活动轮廓模型进行图像分割的思想....Kass等提出的原始Snakes模型由一组控制点:... -
matlab 解方程组 追赶法
2013-11-20 00:22:09解偏微分方程的的matlab 代码 追赶法解方程组 -
matlab求解三对角方程组
2019-08-08 14:17:44在求解偏微分方程时,最经典的就是热传导方程的求解。 求解方法普遍采用隐格式。差分之后很显然会得到下图所示的三对角矩阵: 求解三对角矩阵有很多方法,下面只列举两种方法 1、直接求解 行如上面的矩阵,编写代码... -
matlab 矩阵jocobi迭代_线性方程组的迭代解法数值结果分析
2020-12-22 12:06:27----(宋)陆游在使用有限差分法的五点格式求解偏微分方程组时,把问题转化为求解数量级从10直到为10^4个未知数的稀疏矩阵的线性方程组,然后使用了Jocobi迭代,G-S迭代,SOR迭代以及CG迭代求解。不管从程序的运行时间...