声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2363|回复: 0

[编程技巧] 利用Matlab求解不同类型的偏微分方程

[复制链接]
发表于 2017-11-6 09:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  在科学技术各领域中,有很多问题都可以归结为偏微分方程问题。在物理专业的力学、热学、电学、光学、近代物理课程中都可遇见偏微分方程。偏微分方程,再加上边界条件、初始条件构成的数学模型,只有在很特殊情况下才可求得解析解。随着计算机技术的发展,采用数值计算方法,可以得到其数值解。

  下面的几个简单例子,将为大家介绍如何利用Matlab中的PDE工具箱进行偏微分方程的求解!

  抛物线型
  受热金属块的热传导问题:
1.png
  一块受热的有矩形裂纹的金属块。金属块的左侧被加热到100℃,右侧热量则以恒定速率降低到周围空气的温度,所有其他边界都是独立的,于是边界条件为:
2.png
  初始温度为0℃。指定起始时间为0,研究5s的热扩散问题。

  求解结果如下:
3.png

  具体步骤:
  1、建模。先画一个起点为(-0.5,-0.8),终点为(0.5,0.8)的矩形,再建另一个矩形,起点(-0.05,-0.4),终点(0.05,0.4),然后在设置公式中输入R1-R2;

  2、设置边界条件;

  3、PDE中设置参数,d=1,c=1,a=0,f=0;

  4、初始化网格并细化一次;

  5、在Solve Parameter中,设置u0=0,时间为[0:0.5:5],然后求解。

  注意到金属块的温度升高很快,可试着改变时间列表的表达式为logspace(-2,0.5,20)以便观察。

  双曲线型
  方形薄膜横向波动问题(波动方程):
4.png
  薄膜左侧和右侧固定(u=0),上端和下端自由:
5.png
  满足边界条件的初值为:
6.png
  求解结果如下:
7.png
  具体步骤:
  1、建模,画出起点(-1,-1),终点(1,1)的矩形;

  2、确定边界条件;

  3、PDE Specification对话框中选择双曲线型,参数设为c=1,a=0,f=0,d=1;

  4、初始化网格,并细化一次;

  5、在Solve Parameters对话框的时间中输入linspace(0,5,31),u的初值为atan(cos(pi/2*x)),一次偏导的初值为3*sin(pi*x).*exp(sin(pi/2*y)),然后求解。

  本征值型
  L形薄膜的特征值和特征函数:
0.png
  计算所有特征值<100的特征模式,边界上为u=0。

  结果中的两种模态如下:
8.png
9.png
10.png
  具体步骤:
  1、建模,如上图;

  2、边界条件使用默认即可;

  3、初始化网格并细化两次;

  4、PDE对话框中选择Eigenmodes,参数使用默认值c=1,a=0,d=1;

  5、在Solve Parameter对话框中,输入特征值搜索范围,使用默认值即可[0 100],然后求解。

  非线性问题
  单位圆盘的最小表面问题:
11.png
  计算域为单位圆盘,边界条件为
12.png
  本问题为非线性问题,不能用常规的椭圆型方程求解器进行求解,而需要使用非线性求解器pdenonlin。

  结果如下:
13.png
  具体步骤:
  1、画出单位圆;

  2、选择所有边界,在Boundary Condition对话框中,设置r为x.^2,即定义边界条件Dirichlet条件u=x^2;

  3、然后在PDE Specification对话框中,选择椭圆型方程,在c中输入1./sqrt(1+ux.^2+uy.^2);

  4、初始化网格并细化一次;

  5、求解前,选择Solve菜单中的Parameters选项,选择Use nonlinear solver选项,将容限参数设为0.001,然后求解。

  来源:新浪了凡春秋的博客

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-28 13:17 , Processed in 0.070567 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表