最近在计算波动方程数值解时,发现网上很难找到比较详细实用的Matlab教程,所以我打算自己写一个,以一维弦的波动为例,从理论推导到代码实现,跟大家分享一下。

杜帅:一维波动方程数值解 Matlab 教程(从入门到出图)——1波动方程基本概念​zhuanlan.zhihu.com

杜帅:一维波动方程数值解 Matlab 教程(从入门到出图)——2差分方程基本概念​zhuanlan.zhihu.com

杜帅:一维波动方程数值解 Matlab 教程(从入门到出图)——3数值计算的Matlab实现​zhuanlan.zhihu.com

前两篇已经讲了一维波动方程以及差分方法数值计算的基本知识,最后我们来看看如何用Matlab实现二阶偏微分方程的数值计算[1]

一、一维波动方程的差分形式

微分方程

我们将自变量 x 和 t 离散化,分别均分为

份,步长分别为
,其中第 i 个 x 和 第 j 个 t 对应的位移为

根据二阶差商的写法,改写为差分形式

整理得

这样等号右边都是关于时间

的位移,只有左边是关于
的。

而对于位置

,初始条件里已经全部给出,所以只需要带入上式就可以循环计算出所有结果。

边界条件的差分形式

位移边界条件

应力边界条件

差分形式

二、Matlab程序实现

1、参数离散化

c 

2、初始条件

我们设置初始位移 和初始速度均为零。

u = zeros(Nx, Nt);

3、循环计算

只需要从 j=2 开始循环时间,带入初始条件,计算下一时刻所有位置的位移。

其中二次差分可以利用Matlab的向量运算,避免再套循环。由于二次差分后少了两个元素,我们在两端补零即可,因为后边边界条件还会对两端进行修正,所以没有影响。

for 

4、边界条件

上边代码中采用一端固定一端自由的边界条件。

若两端自由,可改为

u

若右端守恒力,可改为

u

5、图像显示

画出不同时刻的位移图,并存为动画

h

视频:

知乎视频​www.zhihu.com

教材推荐

高等应用数学问题的Matlab求解,豆瓣9.2分。

高等应用数学问题的MATLAB求解(豆瓣评分9.2)​book.douban.com

参考

  1. ^一维波动方程的数值解 http://wuli.wiki/online/W1dNum.html

matlab画微分方程的矢量场图_一维波动方程数值解 Matlab 教程(从入门到出图)——3数值计算的Matlab实现...相关推荐

  1. matlab画微分方程的矢量场图_MATLAB偏微分方程

    4.8.2  偏微分方程 在自然科学的很多领域内,都会遇到微分方程初值问题,特别是偏微分方程,它的定解问题是描述自然界及科学现象的最重要的工具.可以说,几乎自然界和各种现象都可以通过微分方程(特别是偏 ...

  2. matlab画二位温度场图(代码带注释)

    matlab画二位温度场图(代码带注释) 实验设备 二维温度图情况 实验设备 设备各个采集温度坐标点如下所示a %给定一个矩形区域76x125 %%这个区域20个离散点就是第一个时间段的温度,采样的2 ...

  3. python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图

    作者 | Jay Alammar转载自 | 高级农民工 通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制 ...

  4. java画个动漫人物_动漫人物绘画教程

    活灵活现的美猴王孙悟空,正义感十足的少年英雄哪吒,数十年百看不厌的猫和老鼠,永远不会变老的白雪公主,憨态可掬.笑料不断的唐老鸭和米老鼠,智慧的少年侦探柯南,自以为是的小孩子蜡笔小新,非常可爱的樱桃小丸 ...

  5. python画动态玫瑰花图片大全_【python】trutle绘制送给女神的玫瑰花图

    天啊,没想到python龟绘制的图居然这么方便! ''' Created on Nov 18, 2017 @author: QiZhao ''' 代码传送门: import turtle # 设置初始 ...

  6. 贴图教程_次世代游戏基础教程-maya烘焙AO贴图

    MAYA  AO(Ambient Occlusion)烘焙 AO就是Ambient Occlusion的缩写,直接翻译中文是环境闭塞,是CG动画和游戏制作常用的一个制作流程.简单地说就是通过运算,渲染 ...

  7. python程序设计案例教程 张思民_《Python程序设计案例教程——从入门到机器学习(微课版)》.doc...

    1 - 1 - 作者:张思民 定价:49元 ISBN:9787302510147 <Python应用程序设计>课程教学大纲 一.课程基本信息 中文名称:Python应用程序设计 英文名称: ...

  8. 小白python教程_面向小白的Python教程:入门篇(三)

    本节概要字符串拼接 字符串切片 字符串方法startswith(),endswith() 程序实例5 本节我们继续丰富学生成绩录入这个程序.假设我们学校中有几名复姓呼延的少数民族同学,他们能够享受少数 ...

  9. 用matlab画旋转抛物面_基于MATLAB的旋转抛物面天线的几种特性的仿真

    [实例简介] 这是一篇关于基于MATLAB的旋转抛物面天线的几种特性的仿真的论文,对旋转抛物面天线的方向图.利用系数.口径截获效率和增益因子及馈源方向函数等特性进行了仿真 第5期 顾洪军,等:基于 M ...

  10. 风云崛起之使用simulink画微分方程图像

    一阶微分方程还是太过于简单,如果只会一阶微分方程的话,那我们组成的电路只有RLE电路或者RCE电路.于是y思考,那二阶微分方程是不是对应的RLC的电路呢?接下来我们用二阶微分方程来分析电路. 首先我们 ...

最新文章

  1. [流水账]毕业?工作?
  2. GPT-3:现实版的“贾维斯”?还是真「人工」智能?
  3. 字典占内存大吗_微博热搜稳占第一!「美团大数据杀熟」是真的吗?
  4. list集合去重复元素
  5. Neo4j:找到两个纬度/经度之间的中间点
  6. 【Java】探究自增运算符++的原理
  7. 今天的由于他工作很忙的局域网聊天
  8. 天梯赛 L2-011. (二叉树) 玩转二叉树
  9. ubuntu内核版本管理
  10. ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案
  11. JDBC常用接口详解
  12. 安装Windows 和linux双系统失败导致Windows无法引导的解决方法
  13. SQL Server 2014,表变量上的非聚集索引
  14. SmartWx微信公众号管理系统源码v2.0
  15. html制作dnf,DNF教你如何不花一分钱制作90顶级史诗
  16. matlab eps 字体,matlab eps 字体用AI打开乱码的解决
  17. spss变量视图转数据视图_SPSS的数据视图和变量视图
  18. 小米手机qq邮箱收件服务器,小米手机无法添加邮箱?是你不会设置而已
  19. [休闲]GDC China 2007上海中国游戏开发者大会
  20. advisor 2002在matlab2014a上的安装

热门文章

  1. goland切换换行/不换行快捷键
  2. 触摸屏怎么禁止浏览器窗口的缩放
  3. php表白情话,唯美表白情话短句 八字古风情话
  4. LeetCode——1900. 最佳运动员的比拼回合(The Earliest and Latest Rounds Where Players Compete)[困难]——分析及代码(Java)
  5. Django-QuerySet之first(),last(),latest(),earliest()
  6. 单例模式只会懒汉饿汉?读完本篇让你面试疯狂加分
  7. Spring Boot入门(12)实现页面访问量统计功能
  8. 当我按下电源按钮的瞬间,电脑都干了些什么
  9. mysql以性别分组_sql语句 根据年纪阶段统计人数 根据性别分组
  10. 读书06《简约至上》