微分方程求解二(偏微分方程求解)

(1)偏微分方程的类型(二阶)

a ∂ 2 u ∂ x 2 + b ∂ 2 u ∂ y ∂ x + c ∂ 2 u ∂ x 2 + d ∂ u ∂ x + e ∂ u ∂ y + f u + g = 0 a\frac{\partial^2u}{\partial x^2}+b\frac{\partial^2u}{\partial y\partial x}+c\frac{\partial^2u}{\partial x^2}+d\frac{\partial u}{\partial x}+e\frac{\partial u}{\partial y}+fu+g=0 ax22u+byx2u+cx22u+dxu+eyu+fu+g=0

  • b 2 − 4 a c < 0 b^2-4ac<0 b24ac<0 椭圆
  • b 2 − 4 a c = 0 b^2-4ac=0 b24ac=0 抛物线
  • b 2 − 4 a c > 0 b^2-4ac>0 b24ac>0 双曲线

(2)抛物线型

1.显式法

  • 求解思想:通过差分的方法一排一排向上推。
  • 做划分并代入方程 u i , j + 1 − u i , j k = u i + 1 , j − 2 u i , j + u i − 1 , j h 2    ( Δ x = h , Δ t = k ) \frac{u_{i,j+1}-u_{i,j}}{k}=\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{h^2}~~(\Delta x=h,\Delta t=k) kui,j+1ui,j=h2ui+1,j2ui,j+ui1,j  (Δx=h,Δt=k)
  • 通过化简得到 u i , j + 1 = r u i − 1 , j + ( 1 − 2 r ) u i , j + r u i + 1 , j    ( r = k h 2 ) u_{i,j+1}=ru_{i-1,j}+(1-2r)u_{i,j}+ru_{i+1,j}~~(r=\frac{k}{h^2}) ui,j+1=rui1,j+(12r)ui,j+rui+1,j  (r=h2k)
  • 具体推的步骤大概如下:
    • 由于已知 u ( x , 0 ) = f ( x ) u(x,0)=f(x) u(x,0)=f(x),因此相当于知道 u 0 , 0 , u 1 , 0 , u 2 , 0 … u_{0,0},u_{1,0},u_{2,0}\dots u0,0,u1,0,u2,0
    • 通过上面的公式就可以推出来 u 1 , 1 , u 2 , 1 , u 3 , 1 … u_{1,1},u_{2,1},u_{3,1}\dots u1,1,u2,1,u3,1,注意由于已知左边界和右边界,因此 u 0 , 1 u_{0,1} u0,1也知道,所以第二排就可以全部推出来。
    • 通过上面的方式可以求出区域内全部的数值解。

2.Crank-Nicholson隐式算法

  • 求解思想:也是一排一排向上推,但是这次是使用线性方程组一次性求出一排。
  • 这里采用相同的划分方式,但是代入不同的差分方程
  • 通过化简得到
  • 具体推的步骤大概如下:
    • 由于已知 u ( x , 0 ) = f ( x ) u(x,0)=f(x) u(x,0)=f(x),因此相当于知道 u 0 , 0 , u 1 , 0 , u 2 , 0 … u_{0,0},u_{1,0},u_{2,0}\dots u0,0,u1,0,u2,0
    • 通过上面的公式就可以推出来方程 − r u i − 1 , 1 + ( 2 + 2 r ) u i , 1 − r u i + 1 , 1 = c     ( c 是 一 个 常 数 ) -ru_{i-1,1}+(2+2r)u_{i,1}-ru_{i+1,1}=c~~~(c是一个常数) rui1,1+(2+2r)ui,1rui+1,1=c   (c),注意由于已知左边界和右边界,所以这个其实就转化成在一维上的差分问题,最后列出全部的方程构成方程组求解即可。
    • 通过上面的方式可以求出区域内全部的数值解。
  • 一个例子:
  • 做划分并且代入差分方程
    k = 0.01 , h = 0.1 k=0.01,h=0.1 k=0.01,h=0.1
    − u i − 1 , j + 1 + 4 u i , j + 1 − u i + 1 , j + 1 = u i − 1 , j + u i + 1 , j -u_{i-1,j+1}+4u_{i,j+1}-u_{i+1,j+1}=u_{i-1,j}+u_{i+1,j} ui1,j+1+4ui,j+1ui+1,j+1=ui1,j+ui+1,j
  • 进行求解(这里利用了对称性,在 x = 0.5 x=0.5 x=0.5 两边是对称的,将 j = 0 j=0 j=0隐去,并根据对称性将 u 6 u_6 u6替换成 u 4 u_4 u4)

(3)双曲线型

  • 得到的差分方程为 ( r = k h r=\frac{k}{h} r=hk注意和之前的定义不同):
  • 划分需要满足一定的条件 k h ≤ 1 c \frac{k}{h}\le\frac{1}c{} hkc1
  • 具体求解按照之前类似的方法即可。

(4)椭圆型

  • 得到的差分方程为 (这里取 k k k h h h相等):
  • 求解
    • 可以采用类似之前的隐式或者显式方法求解。
    • 可以采用迭代法求解,比如雅克比迭代,转换成下面的迭代式
  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
WinHex 是一个专门用来对付各种日常紧急情况的小工具。它可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。总体来说是一款非常不错的 16 进制编辑器。得到 ZDNetSoftwareLibrary 五星级最高评价,拥有强大的系统效用。 功能概述 具体来说,WinHex 是一款以通用的 16 进制编辑器为核心,专门用来对付计算机取证、数据恢复、低级数据处理、以及 IT 安全性、各种日常紧急情况的高级工具: 用来检查和修复各种文件、恢复删除文件、硬盘损坏、数码相机卡损坏造成的数据丢失等。 功能包括 (依照授权类型): - 硬盘,软盘,CD-ROM和 DVD,ZIP,Smart Media,Compact Flash,等磁盘编辑器... - 支持 FAT,NTFS,Ext2/3/4,ReiserFS,Reiser4,UFS,CDFS,UDF 文件系统 - 支持对磁盘阵列 RAID 系统和动态磁盘的重组、分析和数据恢复 - 多种数据恢复技术 - RAM编辑器,可以编辑物理内存和其他进程的虚拟内存 - 可分析 RAW 格式原始数据镜像文件中的完整目录结构,支持分段保存的镜像文件 - 数据解释器,已知 20 种数据类型 - 使用模板编辑数据结构(例如: 修复分区表/引导扇区) - 连接和分割、以奇数偶数字节或字的方式合并、分解文件 - 分析和比较文件 - 搜索和替换功能尤其灵活 - 磁盘克隆 (可在 DOS 环境下使用 X-Ways Replica) - 驱动器镜像和备份 (可选压缩或分割成 650 MB 的档案) - 程序接口 (API) 和脚本 - 256 位 AES 加密,校验和,CRC32,哈希算法 (MD5,SHA-1,...) - 数据擦除功能,可彻底清除存储介质中残留数据 - 可导入剪贴板所有格式数据,包括 ASCII、16 进制数据 - 可进行 2 进制、16 进制 ASCII,Intel 16 进制,和 Motorola S 转换 - 字符集: ANSI ASCII,IBM ASCII,EBCDIC,(Unicode) - 立即窗口切换、打印、生成随机数字 - 支持打开大于 4 GB 的文件,非常快速,容易使用。 - 广泛的联机帮助 功能特点 WinHex 具有强大的搜索功能,可以查找和替换文本或Hex值。选择搜索菜单中的联合搜索项,弹出搜索对话框,先输入该文件要搜索的十六进制值选择通配符和搜索的范围就可以开始搜索了。你可以选择在整个文件中搜索,也可选择仅在区块中进行有条件的搜索。而且在 WinHex 中可以方便的进行定位操作,快速转道新的位置。执行定位菜单中的标记定位命令,或按Ctrl+L,将鼠标指向需要定位的位置,就可以在当前鼠标所在的位置作上标记,不管你操作到什么地方,按组合键Ctrl+k,就可以返回到标记所在的位置。执行定位菜单中的删除标记命令,可以将所作的标记删除。除了利用标记定位以外,你还可以方便的转到文件的开始和结尾,区块的开始和结尾,行首和行尾以及页首和页尾。你可以自己试一试,相信你很快就知道了。   在WinHex中集成了强大的工具,包括磁盘编辑器,Hex转换器和RAM编辑工具,并能够方便的调用系统常用工具如:计算器,记事本,浏览器等。使用十分方便。按 F9,弹出磁盘编辑器对话框,首先选择磁盘分区,然后按确定按钮就可以方便的对磁盘的空余空间进行清理。点击工具栏中的 RAM 编辑工具按钮,弹出 RAM 编辑器,选择需要浏览或编辑修改的 RAM 区,选择确定就可以了,RAM 的内容就显示在主窗口了。在未注册的版本中,可以编辑,但不能保存大小超过 512K 的文件且只能浏览而不能修改编辑 RAM 区域。按 F8,弹出十六进制和十进制转换器,左边栏显示十六进制数字,右边栏显示十进制数字。如果你在左边输入十六进制数,按 Enter 其十进制结果就出现在右边的矩形框中了,反之亦然。如果你按组合键 Alt+F8,可调用系统计算器。   WinHex 使用简单,功能强大,可以方便你程序的调试、文本编辑、科学计算和系统管理,相信你会喜欢的。如果你想删除 WinHex 软件,把整个目录删掉就行了   在 DOS 时代,我们编辑文件代码用的一般都是 PCTOOLS V5.0,可是自从 FAT32 出现以来,PCTOOLS V5.0 不能用了,就很少优秀的文件编辑器出现过,不过现在有了 WinHex 可以说是继前者之后的最优秀的文件编辑器了。作为一个 16 进制文件编辑与磁盘编辑软件。WinHex 以文件小、速度快,功能强大而著称,连 ZDNetSoftwareLibrary 也给了他5星的最高评价。它可以胜任Hex和ASCII码编辑修改,多文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值