MATLAB课件10
2024版matlab教程(全)资料ppt课件

进行通信系统的建模、仿真和分析。
谢谢聆听
B
C
变量与赋值
在MATLAB中,变量不需要事先声明,可以 直接赋值。变量名以字母开头,可以包含字 母、数字和下划线。
常用函数
MATLAB提供了丰富的内置函数,如sin、 cos、tan等三角函数,以及abs、sqrt等数 学函数。用户可以通过help命令查看函数的
D
使用方法。
02 矩阵运算与数组操作
错误处理
阐述try-catch错误处理机制的语法、 执行流程及应用实例。
04
函数定义与调用
函数概述
阐述函数的概念、作用及分类,包括内置函数和 自定义函数。
函数调用
深入剖析函数的调用方法,包括直接调用、间接 调用及参数传递等技巧。
ABCD
函数定义
详细讲解自定义函数的定义方法,包括函数名、 输入参数、输出参数及函数体等要素。
拟合方法
利用已知数据点构造近似函数,如最小二乘法、多项 式拟合、非线性拟合等。
插值与拟合的比较
插值函数经过所有数据点,而拟合函数则追求整体上 的近似。
数值积分与微分
01
数值积分方法
利用数值技术计算定积分的近似 值,如矩形法、梯形法、辛普森 法等。
02
数值微分方法
通过数值技术求解函数的导数或 微分,如差分法、中心差分法、 五点差分法等。
02
01
矩阵运算
加法与减法
对应元素相加或相减,要求矩阵 大小相同
乘法
使用`*`或`mtimes`函数进行矩阵 乘法,要求内维数相同
点乘与点除
使用`.*`、`./`进行对应元素相乘或 相除,要求矩阵大小相同
特征值与特征向量
2024版MATLAB课件

23
数值计算基础概念
2024/1/30
数值计算的定义
研究并使用数值近似方法来解决数学问题的过程。
误差分析
理解并控制计算过程中产生的误差,包括舍入误差、截断误差等。
算法稳定性与复杂性
评估数值算法的稳定性、收敛性以及计算复杂度。
24
符号运算入门知识
符号运算的概念
处理数学符号的运算,如代数式、方程、积 分等。
03
特征值和特征向量在矩阵对角化、解微分方程、数据分析等领
域有广泛应用。
16
稀疏矩阵处理方法
稀疏矩阵的概念
稀疏矩阵是指矩阵中大部分元素为零的矩阵,对于 大规模稀疏矩阵,使用特殊的数据结构进行存储和 计算可以大大提高效率。
稀疏矩阵的运算
MATLAB支持对稀疏矩阵进行加法、减法、乘法和 转置等运算,同时提供了一些函数用于求解稀疏线 性方程组等问题。
可根据需求编写自定义函数,实现 特定数据可视化效果。
2024/1/30
自定义函数
可安装第三方工具箱,扩展 MATLAB的数据可视化功能,如 Seaborn、Plotly等。
第三方工具箱
支持交互式绘图,可通过鼠标、键 盘等操作与图形进行交互,实现数 据可视化的动态效果。
22
05
数值计算与符号运算
2024/1/30
6
界面组成及功能介绍
命令窗口(Command Win…
用于输入和执行MATLAB命令,显示命令执行结果。
工作空间(Workspace)
显示当前MATLAB工作空间中的变量及其值。
命令历史(Command His…
记录用户在命令窗口中输入的命令及其执行结果,方便用户 查看和回顾。 2024/1/30
MATLAB经典教程(全)PPT课件

THANKS FOR WATCHING
感谢您的观看
信号时域分析和频域分析
时域分析
研究信号随时间变化的规律,包括波形、幅度、频率、相位等。
频域分析
将信号转换为频域表示,研究信号的频谱结构和频率特性,包括幅 度谱、相位谱、功率谱等。
时域与频域关系
时域和频域是信号分析的两个方面,它们之间存在对应关系,可以 通过傅里叶变换相互转换。
数字信号处理基础
数字信号表示
MATLAB工作环境与界面
MATLAB工作环境
包括命令窗口、工作空间、命令历史窗口、当 前文件夹窗口等。
界面介绍
详细讲解MATLAB界面的各个组成部分,如菜 单栏、工具栏、编辑器窗口等。
基本操作
介绍如何在MATLAB环境中创建、保存、运行脚本和函数,以及如何进行基本 的文件操作。
基本数据类型与运算
数据统计描述性分析
描述性统计量
介绍均值、中位数、众数、方差、标准差等常见 描述性统计量的计算方法和意义。
数据分布形态
通过直方图、箱线图等图形展示数据的分布形态 ,帮助用户了解数据的整体特征。
数据间关系
探讨协方差、相关系数等统计量在揭示数据间关 系方面的应用。
数据可视化方法
二维图形绘制
详细讲解MATLAB中二维图形的绘制方法,包括线图、散点图、 柱状图等。
特征值与特征向量
特征值与特征向量的定义
设A为n阶方阵,若存在数λ和n维非零向量x,使得Ax=λx ,则称λ为A的特征值,x为A的对应于特征值λ的特征向量 。
特征值与特征向量的性质
包括特征值的和等于方阵对角线元素之和、特征值的积等 于方阵的行列式等性质。
MATLAB求解
使用MATLAB内置函数`eig`求解方阵的特征值和特征向量 。
MATLAB教学课件.ppt

例如,键入命令: A=[1 2 3;4 5 6;7 8 9] 输出结果是: A = 1 2 3
456
789
四. 矩阵运算
1.建立矩阵
3.图形功能
MATLAB提供了两个层次的图形命令:一种是对图形句柄进 行的低级图形命令,另一种是建立在低级图形命令之上的高 级图形命令。利用MATLAB的高级图形命令可以轻而易举地 绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、 视角和光照设计、色彩精细控制等等。
4.应用工具箱
基本部分和各种可选的工MATLAB最基本的数据对象,MATLAB的大部分运算 或命令都是在矩阵运算的意义下执行的。在MATLAB中,不需 对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的 内容自动进行配置。
1.建立矩阵
建立矩阵可以用:直接输入法、利用函数建立矩阵和利 用M文件建立矩阵。
一. MATLAB特点:
一. MATLAB特点:
1. 数值计算和符号计算功能
MATLAB的数值计算功能包括:矩阵运算、多项式和有 理分式运算、数据统计分析、数值积分、优化处理等。符 号计算将得到问题的解析解。
2.MATLAB语言
MATLAB除了命令行的交互式操作以外,还可以程序方式 工作。使用MATLAB可以很容易地实现C或FORTRAN语言的 几乎全部功能,包括Windows图形用户界面的设计。
基本部分中有数百个内部函数。
其工具箱分为两大类:功能性工具箱和学科性工具箱。 功能性工具箱主要用来扩充其符号计算功能、可视建模仿真 功能及文字处理功能等。学科性工具箱专业性比较强,如控 制系统工具箱、信号处理工具箱、神经网络工具箱、最优化 工具箱、金融工具箱等,用户可以直接利用这些工具箱进行 相关领域的科学研究。
十节MATLAB绘图课件

MATLAB绘图
函数相对另一函数旳图形绘制 theta=linspace(0,2*pi,101); plot(sin(theta),sin(2*theta+pi/4)) % 里萨如图形 axis off %隐去坐标轴
MATLAB绘图
曲线族旳绘制
例, 抛物线族 y =a^2-x^2, -5<x<5, a=1,2…5.
Fplot 绘制函数在指定函数区间旳图形 fplot(fun,lims,tol) %lims=[xmin,xmax]
tol 默以为0.002. fplot('sin(1 / x)', [0.01 0.1],1e-3)
MATLAB绘图
fplot(fun,lims,tol) % fun 必须是m文件或者独立变 量为x旳字符串,假如fun为[f1(x),f2(x),f3(x)],则 当输入[x1,x2]后,返回旳是矩阵 [f1(x1),f2(x1),f3(x1)
MATLAB绘图
图形注释和可视化提升 1. 使用坐标轴,图形标题,曲线标注,填充
区域和添加文本 2. 变化轴、曲线和文本旳属性 3. 使用希腊字母、数学符号、上下标等
MATLAB绘图
例 x=0:0.05:6; plot(x,cos(x),'k',x,1./cosh(x),'k',[4.73 4.73],[-1
1],'k'); xlabel('x'); ylabel('Value of Function') title('Visualization of two intersectting curves') text(4.8,-.5,'x=4.73','fontname','times','fontsize',14) text(2.1,.3,'1/cosh(x)','fontsize',16) text(1.2,-.4,'cos(x)','fontsize',16,'fontname','times') set(gca,'fontsize',14,'LineWidth',2) PropertyName={'LineWidth','LineWidth','LineWidth'}; PropertyValue={2.5,2.5,2.5;7,7,7;1,1,1}; set(h,PropertyName,PropertyValue) [legendhandle
matlab课件

11
MATLAB语言
函数文件和命令文件的区别
函数文件可以传递参数,而命令文件不具备这种功能; 命令文件中的变量都是全局变量,文件执行完后,还是 有效变量,仍然保存在工作区间中;而函数文件中的变 量都是局部变量,只在本函数文件中才有效,当函数文 件执行完成后,这些变量将被清除。
12
MATLAB语言
18
MATLAB语言
3.3.1顺序结构
程序模块1 程序模块1 模块 程序模块2 程序模块2
• MATLAB中实现顺序结构的方法非常简单:
–只需将程序语句顺序排列即可
19
MATLAB语言
3.3.2 选择结构
成立 程序模块1 程序模块 不成立 程序模块2 程序模块
条件
• 在MATLAB中,选择结构 由两种语句结构实现:
MATLAB语言
•
•
Matlab课程共 36学时其中18学时实验18学 时理论 MATLAB将矩阵运算、数值分析、图形处理、 编程技术结合在一起,为用户提供了一个强有 力的科学及工程问题的分析计算和程序设计工 具,它还提供了专业水平的符号计算、文字处 理、可视化建模仿真和实时控制等功能,是具 有全部语言功能和特征的新一代软件开发平台。
15
MATLAB语言
菜单操作。 MATLAB主窗口的File菜单中 主窗口的File (1) 菜单操作。从MATLAB主窗口的File菜单中 选择New菜单项,再选择M file命令, 选择New菜单项,再选择M-file命令,屏幕上将 New菜单项 命令 出现MATLAB 文本编辑器窗口。 出现MATLAB 文本编辑器窗口。 命令操作。 MATLAB命令窗口输入命令 (2) 命令操作。在MATLAB命令窗口输入命令 edit,启动MATLAB文本编辑器后,输入m MATLAB文本编辑器后 edit,启动MATLAB文本编辑器后,输入m文件的 内容并存盘。 内容并存盘。 命令按钮操作。单击MATLAB MATLAB主窗口工具栏 (3) 命令按钮操作。单击MATLAB主窗口工具栏 上的New M-File命令按钮 启动MATLAB 命令按钮, MATLAB文本编辑 上的New M-File命令按钮,启动MATLAB文本编辑 器后,输入m文件的内容并存盘。 器后,输入m文件的内容并存盘。
《Matlab教案》课件

《MATLAB教案》PPT课件第一章:MATLAB概述1.1 MATLAB简介介绍MATLAB的历史和发展解释MATLAB的含义(Matrix Laboratory)强调MATLAB在工程和科学计算中的应用1.2 MATLAB界面介绍MATLAB的工作空间解释MATLAB的菜单栏和工具栏演示如何创建、打开和关闭MATLAB文件1.3 MATLAB的基本操作介绍MATLAB的数据类型演示如何进行矩阵运算解释MATLAB中的向量和矩阵运算规则第二章:MATLAB编程基础2.1 MATLAB脚本编程解释MATLAB脚本文件的结构演示如何编写和运行MATLAB脚本强调注释和代码的可读性2.2 MATLAB函数编程介绍MATLAB函数的定义和结构演示如何创建和使用MATLAB函数强调函数的重用性和模块化编程2.3 MATLAB编程技巧介绍变量和函数的命名规则演示如何进行错误处理和调试强调代码的优化和性能提升第三章:MATLAB数值计算3.1 MATLAB数值解算介绍MATLAB中的数值解算工具演示如何解线性方程组和不等式解释MATLAB中的符号解算和数值解算的区别3.2 MATLAB数值分析介绍MATLAB中的数值分析工具演示如何进行插值、拟合和数值积分解释MATLAB中的误差估计和数值稳定性3.3 MATLAB优化工具箱介绍MATLAB优化工具箱的功能演示如何使用优化工具箱进行无约束和约束优化问题解释MATLAB中的优化算法和参数设置第四章:MATLAB绘图和可视化4.1 MATLAB绘图基础介绍MATLAB中的绘图命令和函数演示如何绘制二维和三维图形解释MATLAB中的图形属性设置和自定义4.2 MATLAB数据可视化介绍MATLAB中的数据可视化工具演示如何绘制统计图表和散点图解释MATLAB中的数据过滤和转换4.3 MATLAB动画和交互式图形介绍MATLAB中的动画和交互式图形功能演示如何创建动画和交互式图形解释MATLAB中的图形交互和数据探索第五章:MATLAB应用案例5.1 MATLAB在信号处理中的应用介绍MATLAB在信号处理中的基本概念演示如何使用MATLAB进行信号处理操作解释MATLAB在信号处理中的优势和应用场景5.2 MATLAB在控制系统中的应用介绍MATLAB在控制系统中的基本概念演示如何使用MATLAB进行控制系统分析和设计解释MATLAB在控制系统中的优势和应用场景5.3 MATLAB在图像处理中的应用介绍MATLAB在图像处理中的基本概念演示如何使用MATLAB进行图像处理操作解释MATLAB在图像处理中的优势和应用场景《MATLAB教案》PPT课件第六章:MATLAB Simulink基础6.1 Simulink简介介绍Simulink作为MATLAB的一个集成组件解释Simulink的作用:模型化、仿真和分析动态系统强调Simulink在系统级设计和多领域仿真中的优势6.2 Simulink界面介绍Simulink库浏览器和模型窗口演示如何创建、编辑和运行Simulink模型解释Simulink中的块和连接的概念6.3 Simulink仿真介绍Simulink仿真的基本过程演示如何设置仿真参数和启动仿真解释Simulink仿真结果的查看和分析第七章:MATLAB Simulink高级应用7.1 Simulink设计模式介绍Simulink的设计模式,包括连续、离散、混合和事件驱动模式演示如何根据系统特性选择合适的设计模式解释不同设计模式对系统性能的影响7.2 Simulink子系统介绍Simulink子系统的概念和用途演示如何创建和管理Simulink子系统解释子系统在模块化和层次化设计中的作用7.3 Simulink Real-Time Workshop介绍Simulink Real-Time Workshop的功能演示如何使用Real-Time Workshop进行代码解释代码对于硬件在环仿真和嵌入式系统开发的重要性第八章:MATLAB Simulink库和工具箱8.1 Simulink库介绍Simulink库的结构和分类演示如何访问和使用Simulink库中的块解释Simulink库对于模型构建和功能复用的意义8.2 Simulink工具箱介绍Simulink工具箱的概念和功能演示如何安装和使用Simulink工具箱解释Simulink工具箱在特定领域仿真和分析中的作用8.3 自定义Simulink库介绍如何创建和维护自定义Simulink库演示如何将自定义块添加到库中解释自定义库对于个人和组织级模型共享的重要性第九章:MATLAB Simulink案例分析9.1 Simulink在控制系统中的应用介绍控制系统模型在Simulink中的构建演示如何使用Simulink进行控制系统设计和分析解释Simulink在控制系统教育和研究中的应用9.2 Simulink在信号处理中的应用介绍信号处理模型在Simulink中的构建演示如何使用Simulink进行信号处理仿真解释Simulink在信号处理领域中的优势和实际应用9.3 Simulink在图像处理中的应用介绍图像处理模型在Simulink中的构建演示如何使用Simulink进行图像处理仿真解释Simulink在图像处理领域中的优势和实际应用第十章:MATLAB Simulink项目实践10.1 Simulink项目实践流程介绍从需求分析到模型验证的Simulink项目实践流程演示如何使用Simulink进行项目规划和实施解释Simulink在项目管理和协作中的作用10.2 Simulink与MATLAB的交互介绍Simulink与MATLAB之间的数据交互方式演示如何在Simulink中使用MATLAB函数和脚本解释混合仿真模式对于复杂系统仿真的优势10.3 Simulink项目案例分析具体的Simulink项目案例演示如何解决实际工程问题解释Simulink在工程教育和项目开发中的应用价值《MATLAB教案》PPT课件第十一章:MATLAB App Designer入门11.1 App Designer简介介绍App Designer作为MATLAB中的应用程序开发环境解释App Designer的作用:快速创建跨平台的MATLAB应用程序强调App Designer在简化MATLAB代码部署和用户交互中的优势11.2 App Designer界面介绍App Designer的用户界面和工作流程演示如何创建新应用和编辑应用界面解释App Designer中的组件和布局的概念11.3 App Designer编程介绍App Designer中的MATLAB编程模式演示如何使用App Designer中的MATLAB代码块解释App Designer中事件处理和应用程序生命周期管理的重要性第十二章:MATLAB App Designer高级功能12.1 App Designer用户界面设计介绍App Designer中用户界面的定制方法演示如何使用样式、颜色和主题来美化应用界面解释用户界面设计对于提升用户体验的重要性12.2 App Designer数据模型介绍App Designer中的数据模型和模型视图概念演示如何创建、使用和绑定数据模型和视图解释数据模型在应用程序中的作用和重要性12.3 App Designer部署和分发介绍App Designer应用程序的部署和分发流程演示如何打包和发布应用程序解释如何为不同平台安装和运行App Designer应用程序第十三章:MATLAB App Designer案例研究13.1 图形用户界面(GUI)应用程序设计介绍使用App Designer设计的GUI应用程序案例演示如何创建交互式GUI应用程序来简化MATLAB脚本解释GUI应用程序在数据输入和结果显示中的作用13.2 数据分析和可视化应用程序设计介绍使用App Designer进行数据分析和可视化的案例演示如何创建应用程序来处理和显示大型数据集解释App Designer在数据分析和决策支持中的优势13.3 机器学习和深度学习应用程序设计介绍使用App Designer实现机器学习和深度学习模型的案例演示如何将MATLAB中的机器学习和深度学习算法集成到应用程序中解释App Designer在机器学习和深度学习应用部署中的作用第十四章:MATLAB App Designer实战项目14.1 App Designer项目规划和管理介绍App Designer项目的规划和管理方法演示如何组织和维护大型应用程序项目解释项目管理和版本控制对于团队协作的重要性14.2 App Designer与MATLAB的集成介绍App Designer与MATLAB之间的数据和功能集成演示如何在App Designer中调用MATLAB函数和脚本解释集成MATLAB强大计算和分析能力的重要性14.3 App Designer项目案例实现分析具体的App Designer项目案例实现过程演示如何解决实际工程项目中的问题解释App Designer在工程项目实践中的应用价值第十五章:MATLAB App Designer的未来趋势15.1 App Designer的新功能和技术介绍App Designer的最新功能和技术发展演示如何利用新功能和技术提升应用程序的性能和用户体验强调持续学习和适应新技术的重要性15.2 App Designer在跨平台开发中的应用介绍App Designer在跨平台应用程序开发中的优势演示如何创建适用于不同操作系统的应用程序解释跨平台开发对于扩大应用程序市场的重要性15.3 App Designer的未来趋势和展望讨论App Designer在未来的发展趋势和潜在应用领域激发学生对于应用程序开发和创新的兴趣强调持续探索和创造新应用的重要性重点和难点解析本文档为您提供了一份详尽的《MATLAB教案》PPT课件,内容涵盖了MATLAB 的基本概念、编程基础、数值计算、绘图和可视化、应用案例、Simulink的基础知识、高级应用、库和工具箱的使用、案例分析以及项目实践、App Designer 的基础知识、高级功能、案例研究、实战项目和未来趋势等方面的内容。
2024年度Matlab简介PPT课件

2024/2/2
7
Matlab基础知识
02
2024/2/2
8
数据类型与变量声明
数据类型
Matlab支持多种数据类型,包括数值型 、字符型、逻辑型、结构体、单元数组 等。
VS
变量声明
在Matlab中,变量无需事先声明,可以 直接赋值使用。同时,Matlab也支持显 式声明变量类型和大小。
2024/2/2
通过系数矩阵和常数向量表示线性方程组, 例如`Ax = b`。
2024/2/2
求解方法
利用Matlab内置函数`solve()`或左除运算符``求解 线性方程组,例如`x = Ab`。
解的性质
讨论线性方程组解的存在性、唯一性和稳定 性等问题。
15
特征值和特征向量计算实例
特征值和特征向量定义
介绍特征值和特征向量的概念和性质。
图像处理功能展示
展示了图像处理工具箱中的基本功能,如滤波、变换等。
地图制作与可视化
介绍了如何使用数据可视化工具箱制作地图并进行可视化展示。
2024/2/2
22
数值计算与优化方
05
法探讨
2024/2/2
23
插值法、拟合曲线原理及实现
插值法基本概念
通过已知数据点,估计未知数 据点的方法。
2024/2/2
件执行不同的代码块。
循环语句
02
Matlab提供了for循环和while循环两种循环结构,用于重复执
行某段代码。
其他流程控制语句
03
Matlab还支持break、continue、return等流程控制语句,用
于在特定条件下控制程序的执行流程。
11
函数定义和调用方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
n=64; [p,e,t]=poimesh(g,n); tm=cputime; u=poisolv(b,p,e,t,f); cputime-tm tm=cputime; u1=assempde(b,p,e,t,c,a,f); cputime-tm
18
1
exact=(1-p(1,:).^2-p(2,:).^2)’/4; … er=norm(u-exact,’inf’); … error=[error er]; … fprintf(‘Error:%e.Number of nodes:%d\n’,er,size(p,2)); … end pdesurf(p,t,u); pdesurf(p,t,u-exact); 11.2 解Helmholtz方程并研究反射波 11.2.1 Helmholtz方程的求解 k=60; g=‘scatterg’; b=‘scatterb’;
11
umax=max(max(u1)); umin=min(min(u1)); For j=1:nframes,… u=tri2grid(p,t,u1(:,j),tn,a2,a3); i=find(isnan(u)); u(i)=zeros(size(i);… surf(x,y,u); caxis([umin umax]); colormap(cool),… axis([-1 1 –1 1 0 1]);… mv(:,j)=getframe;… end Movie(mv,10) 11.6 求解波形传递问题
2
c=1; a=k^2; f=0; [p,e,t]=initmesh(g); [p,e,t]=refinemesh(g,p,e,t); [p,e,t]=refinemesh(g,p,e,t); pdemesh(p,e,t); u=assempde(b,p,e,t,c,a,f); h=newplot;set(get(h,’Parent’),’Renderer’,’zbuffer’)
15
x=p(1,:)’; y=p(2,:)’; R=sqrt(x.^2+y.^2); uu=-log®/2/pi; pdeplot(p,e,t,’xydata’,u-uu,’zdata’,u-uu,’mesh’,’off’); 11.8 使用矩形栅格解泊松方程
u 3x
2
2
g=‘squareg’; b=‘squareb4’; c=1
C(ic2,ic2)=C(ic2,ic2)+K(ic2,ic2)-a2*a2’; f2=F(i2);e2=K2’\f2;FC(ic2)=FC(ic2)+F(c2)-a2*e2; [i3,c3]= pdesdp(p,e,t,3);ic3=pdesubix(cp,c3); [K,F]=assempde(b,p,e,t,c,a,f,time,3); K2=K(i3,i3);d=symmmd(K3);i2=i3(d); K3=chol(K3(d,d)); B3=K(c3,i3);a3=B3/K3; C(ic3,ic3)=C(ic3,ic3)+K(ic3,ic3)-a3*a3’; f3=F(i3);e3=K3’\f3; FC(ic3)=FC(ic3)+F(c3)-a3*e3; u=zeros(np,1); u(cp)=C\FC; u(i1)=K1\(e1-a1’*u(c1));
14
11.7 点力和适应解
u ( x, y) g=‘circleg’;
2
b=‘circleb1’; c=1; a=0; f=‘circlef’; [u,p,e,t]=adaptmesh(g,b,c,a,f,’tripick’,’circlepick’,’ma xt’,2000,’par’,1e-3); pdemesh(p,e,t) pdeplot(p,e,t,’xydata’,u,’zdata’,u,’mesh’,’off’);
5
movie(hf,M,50); 11.3 最小表面问题求解 g=‘circleg’; b=‘circleb2’; c=‘1./sqrt(1+ux.^2+uy.^2)’; a=0;f=0;rtol=1e-3; [p,e,t]=initmesh(g); [p,e,t]=refinemesh(g,p,e,t); u=pdenonlin(b,p,e,t,c,a,f,’tol’,rtol); pdesurf(p,t,u);
12
u u u u ( 2 2 2 ) 0 2 t x y z
2 2 2 2
g=‘squareg’; b=‘squareb3’;
c=1;
a=0;
f=0;
d=1;
[p,e,t]=initmesh(‘squareg’);
13
x=p(1,:)’; y=p(2,:)’; u0=atan(cos(pi/2*x)); ut0=3*sin(pi*x).exp(sin(pi/2*y)); n=31; tlist=linspace(0,5,n); uu=hyperbolic(u0,ut0,tlist,b,p,e,t,c,af,d); delta=-1:0.1:1; [uxy,tn,a2,a3]=tri2grid(p,t,uu(:,1),delta,delta); gp=[tn,a2;a3];
9
u(i2)=K2\(e2-a2’*u(c2)); u(i3)=K3\(e3-a3’*u(c3)); pdesurf(p,t,u) 11.5 求解热传导方程
u u u u ( 2 2 2 ) 0 t x y z g=‘squareg’;
2 2 2
b=‘squareb1’; c=1; a=0; f=1; d=1;
fptint(‘%d’,j); … Pdeplot(p,e,t,’xydata’,uu,’colorbar’,’off’,’mesh’,’off ’), … caxis([-maxu maxu]); … axis tight,set(gca,’DataAspectRatio’,[1 1 1]);axis off, … M(:,j)=getframe(hf); … if j==m, … fprintf(‘done\n’); … end,… end
第11章 MATLAB在偏微分方程 解法中的应用
11.1 解简单泊松方程 g=‘circleg’; b=‘circleb1’; c=1;a=0;f=1; [p,e,t]=initmesh(g,’hmax’,1); error=[];er=1; while er>0.001, … [p,e,t]=refinemesh(g,p,e,t); … u=assempde(b,p,e,t,c,a,f); …
16
a=0; f=‘3*x.^2’; n=16; [p,e,t]=poimesh(g,n); pdemesh(p,e,t);axis equal tm=cputime; u=poisolv(b,p,e,t,f); cputime-tm tm=cputime; u1=assempde(b,p,e,t,c,a,f); cputime-tm
10
Hale Waihona Puke [p,e,t]=initmesh(g); u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.4); u0(ix)=ones(size(ix)); nframes=20; tlist=linspace(0,0.1,nframes); u1=parabolic(u0,tlist,b,p,e,t,c,a,f,d); X=linspace(-1,1,31); y=x; [unused,tn,a2,a3]=tri2grid(p,t,u0,x,y); newplot; Mv=moviein(nframes);
pdeplot(p,e,t,’xydata’,real(u),’zdata’,real(u),’mesh’,’o 3 f’);
colormap(cool) 11.2.2 反射波的可视化研究 movie.m m=10; h=newplot;hf=get(h,’Parent’); set(hf,’Renderer’,’zbuffer’) axis tight,set(gca,’DataAspectRatio’,[1 1 1]);axis off M=moviein(m,hf); maxu=max(abs(u)); for j=1;m, … uu=real(exp(-j*2*pi/m*sqrt(-1))*u); … 4
11.4 使用子区域分解FEM问题
7
C=zeros(nc,nc); FC=zeros(nc,1); [i1,c1]=pdesdp(p,e,t,1);ic1=pdesubix(cp,c1); [K,F]=assempde(b,p,e,t,c,a,f,time,1); K1=chol(k1(d,d));B1=K(c1,i1);a1=B1/K1; C(ic1,ic1)=C(ic1,ic1)+K(ic1,ic1)-a1*a1’; f1=F(i1);e1=K1’\f1;FC(ic1)=FC(ic1)+F(c1)-a1*e1; [i2,c2]=pdesdp(p,e,t,2);ic2=pdesubix(cp,c2); [K,F]=assempde(b,p,e,t,c,a,f,time,2); K2=K(i2,i2);d=symmmd(K2);i2=i2(d); 8 K2=chol(K2(d,d));B2=K(c2,i2);a2=B2/K2;
6
• • • • • • • • • • •
2u 1 L形求解且边界上u=0; g= ‘lshapeg’; b=‘lshapeg’; c=1;a=0;f=1; time= []; [p,e,t]=initmesh(g); [p,e,t] =refinemesh(g,p,e,t); [p,e,t]=refinemesh(g,p,e,t); np=size(p,2); cp=pdesdp(p,e,t); nc=length(cp);