Mathematica中用有限元方法解不规则区域上的波动方程
背景
通常数值解微分方程、微分方程组(常微分、偏微分方程),人们言必称“Matlab”,COMSOL,实际上,微分方程求解有两大强手被人忽视:(1)符号求解独孤求败:Maple; (2)数值求解Mathematica更为好用而且强大。
拿个例子来练习和学习偏微分方程求解solver的用法。这里先看看Mathematica的有限元方法数值求解“波动方程”类型的偏微分方程的初边值问题。
问题
学软件最方便的是看文档,大部分情况下,没有比软件自带文档更权威的教材了。我这个例子是从文档偷出来的。
偏微分方程
\frac{\partial^2 u\left(x,y,t\right)}{\partial t^2}=\frac{\partial^2 u\left(x,y,t\right)}{\partial x^2}+\frac{\partial^2 u\left(x,y,t\right)}{\partial y^2}\tag{1}
求解所在的区间
求解该函数 u u所在的xoyxoy平面上的区域为非普通矩形的不规则区域(差分法常用的矩形网格无法使用):
初边值条件
未知函数 u(x,y,t) u(x,y,t)二阶,而且有三个变量,经验判断初边值条件要有“四个”;左边界、右边界,0阶和一阶初值条件。
第一类边界条件,内边界和外边界上函数值都为0,
u\left(x,y,t\right)_{|(x,y)\in\partial}=0\tag{2}
用代码表示为:
DirichletCondition[u[x,y,t]==0,True]
这个实际包含了内部的圆和外部的圆两个边界条件,“一个顶两个”;
一阶和0阶初始条件:
u(x,y,0)=e^{-5\left(\left(x-0.2\right)^2+y^2\right)}\tag{3}
\frac{\partial u(x,y,0t)}{\partial t}_{|t=0}=0\tag{4}
求解利用FEM包载入即可。
波动方程解一个周期的可视化
求解的方法和代码还可以参考这里
跟COMSOL的对比
COMSOL是Matlab中pdetool相关代码至少早期版本的实际开发者。所以,使用Matlab的pdetool的图形用户界面时,会发现跟COMSOL中“数学形式的PDE”的Physics部分的界面非常类似、简直就是雷同。
不过我用COMSOL求解同一问题,发现效果很不理想,难道因为我是新手,COMSOL就特别歧视我吗?
我开始怀疑COMSOL计算的精度是不是总是这么低,总能导致一些因为误差而产生的虚假的波动?
Mathematica中用有限元方法解不规则区域上的波动方程相关推荐
- 有限元方法编程计算电场中各个区域分布的电势
用有限元方法解二维的拉普拉斯方程,求出有边缘二维面上的电势分布 这里以计算10x10区域为演示,当差异小于设置值后停止演算 Code: #include <QCoreApplication> ...
- PhyGeoNet一种可用于不规则区域的物理信息极限学习机
题目 Physics-Informed Geometry-Adaptive Convolutional Neural Networks for Solving Parametric PDEs on I ...
- 使用多视角图卷积网络预测不规则区域的全市人群流量
1.文章信息 <Predicting Citywide Crowd Flows in Irregular Regions Using Multi-View Graph Convolutional ...
- pde中微元分析法的主要思想_有限元方法的核心思想
有限元法(Finite Element Method)是基于近代计算机的快速发展而发展起来的一种近似数值方法,用来解决力学,数学中的带有特定边界条件的偏微分方程问题(PDE).而这些偏微分方程是工程实 ...
- 边界元与有限元方法相比较的优缺点
一本书上关于有限元和边界元的比较,摘录如下:有限元基于区域上的变分原理和剖分插值,边界元基于边界归化及边界上的剖分插值:有限元属于区域法,其剖分涉及到整个区域,而边界元只需对边界离散,因此,可以 ...
- 带有不同粘性系数的稳态N-S方程的几种迭代有限元方法的latex模板
\documentclass{article} \linespread{2.0} \usepackage{geometry}%页边距等 \geometry{left=2.5cm,right=2.5cm ...
- 二维三角元有限元方法matlab,有限元C++编程实践.doc
有限元C++编程实践.doc 基于有限元算法的编程实践学号:2011043010031 姓名:廖校毅电子科技大学 物理电子学院[摘要]本文就有限元算法在电磁场分析中的应用展开研究与实践,从电磁场的 M ...
- 哈密顿插值c语言,哈密顿系统有限元方法的长时间性质研讨——冯康猜想的证明.pdf...
哈密顿系统有限元方法的长时间性质研讨--冯康猜想的证明 摘 要 哈密顿系统是最重要的动力系统之一,它有两个重要的性质:辛 结构和能量守恒.此外,在一定条件下还具有周期性.优秀的算法应 当尽可能的保持系 ...
- 有限元方法基础入门教程(一维弹性问题的有限元程序)
有限元方法(冯康首次发现时称为基于变分原理的差分方法),是一种用于求解微分方程组或积分方程组数值解的数值技术.这一解法基于完全消除微分方程,即将微分方程转化为代数方程组(稳定情形):或将偏微分方程(组 ...
最新文章
- 小程序页面之间的通讯利器 - nsevent
- 安装CDH5时出错 5.68.168.192.in-addr.arpa domain name pointer bogon.
- 神经网络不可思议的声誉
- DockerFile 参数详解
- mac PHP集成开发工具(PhpStorm)
- SPOJ- QTREE+HDU 3966(树链剖分裸题
- Vue学习笔记(二)—— vue项目中使用axios
- 用小程序·云开发打造运动圈小程序丨实战
- java random用法_JAVA面试题(1)
- Python的安装路径
- 01背包、完全背包、多重背包问题的C++实现及路径记录
- JS总结 循环 退出循环 函数
- 网易云视频html代码,网易云课堂-8小时学会HTML网页开发01-1
- thymeleaf实现分页
- Radius认证协议(六)报文属性
- 性能测试从入门到精通高级篇 - Jmeter之IP伪装和欺骗(详解教程)
- mysql workbench6.3.5_mysql workbench
- echarts图表入门级教程(An introductory chart tutorial)
- CSS中使盒子移动方法总结
- 为啥是SoA?(SoA化的挑战)
热门文章
- 程伟健:新城易居携手中旅联盟深度发力打造城市中心文旅目的地
- Unity接入ChatGPT基于Python.Runtime的实现
- TOP Network 2019年度回顾:积蓄力量,再创辉煌
- 【4】RagTag-基于近缘/同物种的基因组同源组装
- ubuntu(21):ubuntu安装gurobi
- python是商业组织吗_基于Python的电子商务系统的弹性架构与思考
- fopen()、fwrite()、fread()函数使用说明与示例
- 最大数leetcode_Leetcode:最大化有效体验
- Ceph 在Linux上的使用
- C语言写一个函数,可以逆序一个字符串的内容。