天天看点

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

本文参考的是来自

mooc上北京师范大学彭芳麟老师的计算物理基础

基础知识

偏微分方程的三种类型

  • 椭圆型
    • matlab画微分方程的矢量场图_利用matlab求解偏微分方程
    • 初始条件:无
  • 抛物型
    • matlab画微分方程的矢量场图_利用matlab求解偏微分方程
    • 初始条件:初始温度分布
  • 双曲型
    • matlab画微分方程的矢量场图_利用matlab求解偏微分方程
    • 初始条件:初始位移与初始速度

边界条件

  • Dirchlet边界条件
    • 区域边界的函数值
  • Neumann边界条件
    • 给出边界上函数的法向导数
  • 混合边界条件
    • 给出边界上函数及其法向导数的线性组合

差分法解热传导方程

热传导方程:

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

可以获得显式公式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

由此递推公式可以得出下列矩阵

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

例1

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

求解程序

x
           

同时上述的传导方程也有隐式公式

利用

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

得到

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

由此递推公式可以得到

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

引入算符

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

则上述矩阵可以化为

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

例2 解无量纲化后的薛定谔方程

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

差分法解弦振动方程

波动方程:

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

则可以得到相应的显式差分公式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

其中

  • matlab画微分方程的矢量场图_利用matlab求解偏微分方程
    解是稳定的
  • matlab画微分方程的矢量场图_利用matlab求解偏微分方程
    可能能得到正确数值解
  • matlab画微分方程的矢量场图_利用matlab求解偏微分方程
    解是不稳定的

由此递推公式可以得到对应的矩阵形式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

初始条件的设定

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

例3 两端固定的弦振动

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

求解程序

figure
           

用差分法解椭圆型方程

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

差分法:

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

则可以得到显式差分公式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

稳定条件为

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

第一类边界条件

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

中心点用

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

表示,边界点用

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

表示

第二类边界条件

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

迭代法与松弛法

迭代法解线性方程组

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

矩阵解法

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

迭代法

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
x1
           

雅可比迭代法

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

高斯-赛德尔迭代法

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

松弛法

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

则有

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

为提高运算效率,可以加上松弛权重

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

,则有

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

时为低松弛,

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

时为超松弛

松弛法迭代公式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

启动计算:所有内部点都用边界点的平均值作为启动值

pdetool求解偏微分方程

pdetool中方程的输入格式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

边界条件格式

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

可解问题的分类

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

解题步骤

  1. 设置定解问题
    1. Draw Mode 画求解区域如矩形,椭圆,多边形及其组合
    2. Boundary Mode 定义边界条件
    3. PDE Mode 定义偏微分方程,即给定方程的类型及其系数
  2. 解方程
    1. Mesh Mode 将区域分割为三角形网格
    2. Solve Mode 设置初始条件并求解,本征值问题可设搜索本征值范围
  3. 将结果可视化输出
    1. Plot Mode
      1. 用彩图、高度图、矢量场图、曲面图、网线图等直线图和线头图表现解
      2. 对抛物型方程和双曲型方程,可以用动画表现解

用pdetool解椭圆形方程和抛物型方程

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

用pdetool解波动方程和本征值方程

matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程
matlab画微分方程的矢量场图_利用matlab求解偏微分方程

特殊函数的调用和计算

在matlab中查询特殊函数的方法

help matlabspecfun

legendre
           

例:计算n阶勒让德函数

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

在x处的值

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

勒让德函数的值

matlab画微分方程的矢量场图_利用matlab求解偏微分方程

画勒让德多项式的图像

sym 
           

继续阅读