Matlab的偏微分方程工具箱求解方法

这一节我们主要用matlab自带的偏微分方程的工具箱函数求解

一.偏微分方程组的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}{\partial t } = x^{-m}\frac{\partial (x^mf(x,t,u,\frac{\partial u}{\partial x}))}{\partial x }+s(x,t,u,\frac{\partial u }{\partial x}) c(x,t,u,∂x∂u​)∂t∂u​=x−m∂x∂(xmf(x,t,u,∂x∂u​))​+s(x,t,u,∂x∂u​)
​ 其中:t∈[t0,tf],x∈[a,b]t \in [t_0,t_f],x \in [a,b]t∈[t0​,tf​],x∈[a,b]。偏微分方程的初解:
u(x,t0)=v0(x)u(x,t_0) = v_0(x) u(x,t0​)=v0​(x)
​ 边界条件为:
p(x,t,u)+q(x,t)f(x,t,u,∂u∂x)=0p(x,t,u) +q(x,t)f(x,t,u,\frac{\partial u}{\partial x}) = 0 p(x,t,u)+q(x,t)f(x,t,u,∂x∂u​)=0
​ 下面介绍求解此类方程的函数用法:
sol=pdepe(m,pdepe,icfun,bcfun,xmesh,tspan,options);sol = pdepe(m,pdepe,icfun,bcfun,xmesh,tspan,options); sol=pdepe(m,pdepe,icfun,bcfun,xmesh,tspan,options);
​ m:m:m:对称参数。

​ xmesh:xmesh:xmesh:位置向量,xmesh=[x0,x1,...xN],x0=a,xN=bxmesh = [x_0,x_1,...x_N],x_0 = a,x_N = bxmesh=[x0​,x1​,...xN​],x0​=a,xN​=b。

​ tspan:tspan:tspan:时间变量ttt的向量,tspan=[t0,t1,...tM],t0=t0,tM=tftspan = [t_0,t_1,...t_M],t_0 = t_0,t_M = t_ftspan=[t0​,t1​,...tM​],t0​=t0​,tM​=tf​。

​ pdefun:pdefun:pdefun:用户提供的pdepdepde函数文件。函数格式如下:
[c,f,s]=pdefun(x,t,u,dudx);[c,f,s] = pdefun(x,t,u,dudx); [c,f,s]=pdefun(x,t,u,dudx);
​ 也就是说我们要自己设置相应的输出c,f,sc,f,sc,f,s,且它们都是行向量。

​ icfun:icfun:icfun:求解uuu的起始值,格式为u=icfun(x)u = icfun(x)u=icfun(x)。且uuu是行向量。

​ bcfun:bcfun:bcfun:提供边界条件函数,格式:
[pl,ql,pr,qr]=bcfun(xl,ul,xr,ur,t);[pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t); [pl,ql,pr,qr]=bcfun(xl,ul,xr,ur,t);
​ pl,ql:pl,ql:pl,ql:左边界ppp和qqq的行向量。pr,qr:pr,qr:pr,qr:右边界ppp和qqq的行向量。

​ options:options:options:求解器相关解法参数,见odesetodesetodeset。

​ sol:sol:sol:多维向量输出,sol(:,:,i)sol(:,:,i)sol(:,:,i)为uiu_iui​的输出,而ui(j,k)=sol(j,k,i)u_i(j,k) = sol(j,k,i)ui​(j,k)=sol(j,k,i)表示在t=tspan(j),x=xmesh(k)t = tspan(j),x = xmesh(k)t=tspan(j),x=xmesh(k)时候 的uiu_iui​的值。

​ 要获得特定位置和时间的解用以下命令:
[uout,duoutdx]=pdeval(m,xmesh,ui,xout);[uout,duoutdx] = pdeval(m,xmesh,ui,xout); [uout,duoutdx]=pdeval(m,xmesh,ui,xout);
​ xmesh:[x0,x1,...xN]xmesh:[x_0,x_1,...x_N]xmesh:[x0​,x1​,...xN​]

​ ui:sol(j,:,i),ui:sol(j,:,i),ui:sol(j,:,i),第iii个输出uiu_iui​在时间tjt_jtj​处的解。

​ uout:uout:uout:在指定tft_ftf​下对应指定位置xoutxoutxout的值。

​ duoutdx:duoutdx:duoutdx:相对应的dudx\frac{du}{dx}dxdu​。

二.具体的用法

​ 1.求解以下偏微分方程(解析解为 u(x,t)=e−tsin(πx)u(x,t) = e^{-t}sin(\pi x)u(x,t)=e−tsin(πx)):
π2∂u∂t=∂2u∂x2\pi^2\frac{\partial u}{\partial t} = \frac{\partial^2u}{\partial x^2} π2∂t∂u​=∂x2∂2u​
​ 其中x∈[0,1]x \in[0,1]x∈[0,1],满足以下条件:
u(x,0)=sin(πx)u(0,t)=0πe−t+∂u(1,t)∂x=0u(x,0) = sin(\pi x)\\ u(0,t) = 0 \\ \pi e^{-t} + \frac{\partial u(1,t)}{\partial x} = 0 u(x,0)=sin(πx)u(0,t)=0πe−t+∂x∂u(1,t)​=0

​ solve:solve:solve:

​ 改写以上偏微分方程到标准形式:
π2∂u∂t=x0∂∂x(x0∂u∂x)+0\pi^2 \frac{\partial u}{\partial t} = x^0\frac{\partial}{\partial x}(x^0\frac{\partial u}{\partial x}) +0 π2∂t∂u​=x0∂x∂​(x0∂x∂u​)+0
​ 具体的实现代码如下:

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.求解以下偏微分方程的数值解:
∂u1∂t=0.024∂2u1∂x2−F(u1−u2)∂u2∂t=0.170∂2u2∂x2+F(u1−u2)F(u1−u2)=e5.73(u1−u2)−e−11.46(u1−u2)\frac{\partial u_1}{\partial t} = 0.024\frac{\partial^2u_1}{\partial x^2} - F(u_1-u_2)\\ \frac{\partial u_2}{\partial t} = 0.170\frac{\partial^2u_2}{\partial x^2} + F(u_1-u_2)\\ F(u_1-u_2) = e^{5.73(u_1-u_2)} - e^{-11.46(u_1-u_2)} ∂t∂u1​​=0.024∂x2∂2u1​​−F(u1​−u2​)∂t∂u2​​=0.170∂x2∂2u2​​+F(u1​−u2​)F(u1​−u2​)=e5.73(u1​−u2​)−e−11.46(u1​−u2​)
初值条件:
u1(x,0)=1u2(x,0)=0u_1(x,0) = 1\\ u_2(x,0) = 0 u1​(x,0)=1u2​(x,0)=0
边值条件:
∂u1(0,t)∂x=0u2(0,t)=0u1(1,t)=1∂u2(1,t)∂x=0\frac{\partial u_1(0,t)}{\partial x} = 0\\ u_2(0,t) = 0\\ u_1(1,t) = 1\\ \frac{\partial u_2(1,t)}{\partial x} = 0\\ ∂x∂u1​(0,t)​=0u2​(0,t)=0u1​(1,t)=1∂x∂u2​(1,t)​=0
Solve:Solve:Solve:

​ 化简上面的偏微分方程为标准形式:
(11).∗∂∂t(u1u2)=∂∂x(0.024∂u1∂x0.170∂u2∂x)+(−F(u1−u2)F(u1−u2))\begin{pmatrix} 1\\1 \end{pmatrix}_.*\frac{\partial}{\partial t}\begin{pmatrix} u_1\\u_2 \end{pmatrix} = \frac{\partial}{\partial x}\begin{pmatrix} 0.024\frac{\partial u_1}{\partial x}\\0.170\frac{\partial u_2}{\partial x} \end{pmatrix} +\begin{pmatrix} -F(u_1-u_2)\\F(u_1-u_2) \end{pmatrix} (11​).​∗∂t∂​(u1​u2​​)=∂x∂​(0.024∂x∂u1​​0.170∂x∂u2​​​)+(−F(u1​−u2​)F(u1​−u2​)​)
​ 化简左边界条件也有:
(0u2)+(10).∗(0.024∂u1∂x0.170∂u2∂x)=(00)\begin{pmatrix} 0\\u_2 \end{pmatrix}+\begin{pmatrix} 1\\0 \end{pmatrix}_.* \begin{pmatrix} 0.024\frac{\partial u_1}{\partial x}\\0.170\frac{\partial u_2}{\partial x} \end{pmatrix}= \begin{pmatrix} 0\\0 \end{pmatrix} (0u2​​)+(10​).​∗(0.024∂x∂u1​​0.170∂x∂u2​​​)=(00​)
​ 化简右边界条件有:
(u1−10)+(01).∗(0.024∂u1∂x0.170∂u2∂x)=(00)\begin{pmatrix} u_1-1\\0 \end{pmatrix}+\begin{pmatrix} 0\\1 \end{pmatrix}_.* \begin{pmatrix} 0.024\frac{\partial u_1}{\partial x}\\0.170\frac{\partial u_2}{\partial x} \end{pmatrix}= \begin{pmatrix} 0\\0 \end{pmatrix} (u1​−10​)+(01​).​∗(0.024∂x∂u1​​0.170∂x∂u2​​​)=(00​)
​ 最后附上整个代码:

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图像');
endfunction [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]';
endfunction up = secondPdein(x,t,u,dudx)
up = [1 0]';
endfunction [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偏微分方程工具箱求解相关推荐

  1. 最优化问题的Matlab优化工具箱求解总结

    第一次发文,个人总结,可以一起讨论,如有问题,感谢指出. 1.常规算法 MATLAB 目标函数 约束条件 决策变量 非线性 多目标 上下界 线性 非线性 整数 无初始值 linprog √ √ √ i ...

  2. 利用Matlab优化工具箱求解旅行商最短路径问题

    前面介绍了利用Matlab二元整数规划求解数独问题,对于另一个问题-旅行商问题也可以用它来求解. 旅行商问题就是找到经过所有站点的最短闭合路径,如下图为在美国地图框架内产生的200个旅行站点,而旅行商 ...

  3. 数学建模专栏 | 第七篇:MATLAB连续模型求解方法

    连续模型是指模型是连续函数的一类模型总称,具体建模方法主要是微分方程建模.微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题.把形形色色的实际问题化成微分方程的定 ...

  4. 基于Matlab遗传算法工具箱解决物流中心选址

    目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...

  5. 几个常用的matlab图论工具箱函数

    目录 Matlab图论工具箱的应用 Matlab图论工具箱 求解所有顶点的最短距离graphallshortestpaths函数 函数说明 Matlab使用方法 函数格式 Matlab调用格式 求解特 ...

  6. matlab优化工具箱笔记(1)

    1.线性规划 [x,fval]=linprog(c,A,b,Aeq,Beq,VLB,VUB) 用于解决 min(z)=cX%%求满足条件的X与已定系数c乘积之和的最小值 s.t.  AX<=b  ...

  7. 2021-05-11 Matlab遗传算法工具箱的使用及实例(非线性规划)

    Matlab遗传算法工具箱的使用及实例(非线性规划) 本文将介绍MATLAB遗传算法工具箱求解非线性规划问题.在阅读本文之前,建议读者阅读上一期"MATLAB遗传算法工具箱求解线性规划问题& ...

  8. MATLAB遗传算法工具箱的使用及实例(非线性规划)

    本文将介绍MATLAB遗传算法工具箱求解非线性规划问题.在阅读本文之前,建议读者阅读上一期"MATLAB遗传算法工具箱求解线性规划问题".文章传送门:https://blog.cs ...

  9. matlab中PDE工具箱如何使用,使用PDE工具箱求解偏微分方程

    在科学技术各领域中,有很多问题都可以归结为偏微分方程问题.在物理专业的力学.热学.电学.光学.近代物理课程中都可遇见偏微分方程. 偏微分方程,再加上边界条件.初始条件构成的数学模型,只有在很特殊情况下 ...

最新文章

  1. Google K8S与阿里Spring Cloud Alibaba相爱相杀,下一个神级架构来了!
  2. VS中dll以及lib生成路径设置
  3. 单元测试命名最佳实践[关闭]
  4. 蓝桥杯2017初赛-迷宫-dfs
  5. python如何设置窗口保持显示_如何保持Python脚本输出窗口打开?
  6. 智能会议系统(16)---LinphoneService
  7. python应用举例_python基础举例应用
  8. Atitit glb 1tie 2tie city lst 一二线城市列表数据约50个一线城市Alpha ++ 阿尔法++,,London 伦敦,,New York 纽约,,Alpha +
  9. 在线股票配资配资股票交易整站源码/牛股跟投带实盘策略区块链网站整站源码
  10. Ansys workbench静应力分析基本流程
  11. android按键精灵源码,按键精灵手机版网络验证源码适用安卓/苹果ios手机按键
  12. 详解色彩模型、色域以及颜色空间转换
  13. mirna富集分析_miRNA富集分析数据库
  14. 打开新世界大门,测试人可以用Chrome插件干什么?
  15. maven(五)的自动化构建
  16. three.js初体验:模拟一个小树杈的生长
  17. 大学物理·第14章【相对论】
  18. 【经典推荐】教育大数据分析师系列丛书(培训教材)
  19. 【mysql】日期与时间类型
  20. 记录月经周期的微信小程序

热门文章

  1. 程序员面试金典——17.1无缓存交换
  2. 证明$A^TAX = A^Tb$有公共解
  3. hashtable资料
  4. ZOJ4104 Sequence in the Pocket
  5. 【官方方法】MacBook2017 双系统恢复macOS High Sierra
  6. 特性Attibute定义和使用
  7. 叠箱子问题 之 动态规划
  8. 孤读Paper——《Deep Snake for Real-Time Instance Segmentation》
  9. Sharepoint WebService引用
  10. [转帖]中美高速公路等车辆收费有何异同?