(完整版)matlab第六讲教案
matlab教程(完整版)ppt课件
与Maple、Mathematica数学计算软件相比,MATLAB以数值计算见长,而 Maple等以符号运算见长,能给出解析解和任意精度解,而处理大量数据的能力 远不如MATLAB。
5/6/2020
.Matlab Language
4
课程安排
课堂教学:共24学时;(1-12周) 上机试验:共24学时。
(2-13周,周二7-8节,九实401、402、403)
学习成绩: 1)上机实验成绩占30%; 2)考勤 10% ; 3) 考试60% (随堂考试)。
主要参考书 ➢ 《精通MATLAB 6.5》张志涌 等编著,北航出版,2003年 ➢ 《高等应用数学问题的Matlab求解》 薛定宇等著,清华大学出
MATLAB软件功能之强大、应用之广泛,已成为为21世纪最为重要的科学计算 语言。可见学习掌握这一工具的重要性。
5/6/2020
.Matlab Language
13
1.2 MATLAB产品的体系结构
围绕着MATLAB这个计算核心,形成了诸多针对不同 习使M实用A际MMTA上LATATMLBLAA产ABTBS间 的呢品LimA或核?由uB围 称 专 Bl离心若本这ilnoM文 标 编 行用绕为k散。c就干身M核 数A是k件 译效准模着模s时AT有模就心 据e窗编 生率的L块S块tT间、块是必i与 可ALm口译 成C。集集AB的S要组一u/基视图i生函BlC,(mCi动n了成个础化是+形oP成数k如Bm+态o仿,解极,于M应(用的位而领l方o标库w文Cp系cA真这不其i是一e且用工开域T详o式lk准或r件eTmos统Sr核一同丰集体发新领具,见eLo的这y的可m可tslA建s心b软的富高的提的域箱可tMu)、种执eCBo以nm模所A件模的x/性高产供工的大以i,专编行)cM被CTB、a开产块资能效品的具算概首+L门t译A文l,任iooA+分发T品完源数编家工箱法有先c用器n件这B何语Lk析的的成库B值程族s具还程到在4A于可,e些一言0lB和to应体不,多计语的箱在序网线、连以以c工产种文k仿用系同那个算言计,不包上帮S续将s提具品件Cie真g程结的么,与。算这t断,查助/时Mn、高箱提,Ca序构功应另些增被找文Al+D程的供而T包+能该外工加称是档S。序L列许生编P,,从A还具。为否。的表多成译B其哪有箱如专 已M程运以的器A中一其的果用 有序及T有部他总你工 相L每A:分公数有具 关个B开司已特箱 的本工始或有别工身具着研1的具所箱0手0究应箱提的多、单用,供使个学,
第六讲 MATLAB数值计算
5.2.4 矩阵的秩
求矩阵秩的函数: rank(A)。
例如,求例 5.7 中方程组系数矩阵 D 的秩,命令是:
D=[2, 2, -1, 1; 4, 3, -1, 2; 8, 5, -3, 4; 3, 3, -2, 2]; r=rank(D) r= 4
说明D是一个满秩矩阵。
5.2.5 向量和矩阵的范数
第五讲 MATLAB数值计算
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 特殊矩阵 矩阵分析 矩阵分解与线性方程组求解 数据处理与多项式计算 傅立叶分析 数值微积分 常微分方程的数值求解 非线性方程的数值求解 稀疏矩阵
5.1 特殊矩阵
5.1.1 对角阵与三角阵
1. 矩阵的对角元素 (1)提取矩阵的对角线元素 设 A 为 m×n 矩阵, diag(A) 函数用于提取矩阵 A主对 角线元素产生一个具有min(m,n)个元素的列向量。 (2)构造对角矩阵
2. 矩阵的伪逆
对奇异方阵和长方阵,求矩阵伪逆的函数是 pinv(A)。
例5.5 求A的伪逆,并将结果送B。 A=[3,1,1,1; 1,3,1,1; 1,1,3,1]; B=pinv(A) 例5.6 求矩阵A的伪逆。 A=[0,0,0; 0,1,0; 0,0,1]; pinv(A)
5.2.3 方阵的行列式
函数A = pascal(n)生成一个n阶的帕斯卡矩阵。
1 1 3 4 6 10 10 20 15 35
1 5 15 35 70
5.2 矩阵分析
5.2.1 矩阵结构变换
1. 矩阵的转置
转置运算符是单撇号(')。
2. 矩阵的旋转
矩阵的旋转利用函数 rot90(A,k) ,功能是将矩阵 A旋 转90º 的k倍,当k为1时可省略。
MATLAB程序设计第六讲
MATLAB程序设计杨凯2010 . 11主要内容自学))*MATLAB解方程与函数极值解方程与函数极值((自学(自学)自学)线性方程组求解(一、线性方程组求解二、非线性方程组求解三、函数极值四、常微分方程初值问题的数值解法*MATLAB符号计算一、符号计算基础二、微积分三、简化方程表达式四、解方程一、线性方程组求解(自学)1.1 直接解法1.利用左除运算符的直接解法对于线性方程组Ax=b,可以利用左除运算符“\”求可以利用左除运算符“解:x=A\b例*:用直接解法求解下列线性方程组用直接解法求解下列线性方程组。
命令如下命令如下::A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=A\b2.利用矩阵的分解求解线性方程组矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积算法将一个矩阵分解成若干个矩阵的乘积。
常见的矩阵分解有LU 分解分解、、QR 分解分解、、Cholesky 分解分解,,以及Schur 分解分解、、Hessenberg 分解分解、、奇异分解等奇异分解等。
(1) LU 分解矩阵的LU 分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式角矩阵和一个上三角矩阵的乘积形式。
线性代数中已经证明,只要方阵A 是非奇异的是非奇异的,,LU 分解总是可以进行的分解总是可以进行的。
MATLAB 提供的lu 函数用于对矩阵进行LU 分解分解,,其调用格式为式为::[L,U]=lu(X):产生一个上三角阵U 和一个变换形式的下三角阵L(行交换),使之满足X=LU 。
注意注意,,这里的矩阵X 必须是方阵是方阵。
[L,U,P]=lu(X):产生一个上三角阵U 和一个下三角阵L 以及一个置换矩阵P ,使之满足PX=LU 。
当然矩阵X 同样必须是方阵方阵。
实现LU 分解后分解后,,线性方程组Ax=b 的解x=U\(L\b)或x=U\(L\Pb),这样可以大大提高运算速度这样可以大大提高运算速度。
第6讲 matlab工具箱介绍与仿真基础
Signal Processing Toolbox——信号处理工具 箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 System Identification Toolbox——系统辨识 工具箱 Wavele Toolbox——小波工具箱 等等
领域型工具箱
—— 专用型
领域型工具箱是学科专用工具 箱,其专业性很强,比如控制系统工
具箱( Control System Toolbox);信
号处理工具箱(Signal Processing
Toolbox);财政金融工具箱( Financial
Toolbox)等等。只适用于本专业。
Matlab常用工具箱
变量 f fun H A,b Aeq,beq vlb,vub X0 x1,x2 options 描 述 线性规划的目标函数f*X 或二次规划的目标函 数X’*H*X+f*X 中线性项的系数向量 非线性优化的目标函数.fun必须为行命令对象 或M文件、嵌入函数、或MEX文件的名称 二次规划的目标函数X’*H*X+f*X 中二次项的系 数矩阵 A矩阵和b向量分别为线性不等式约束: AX b 中的系数矩阵和右端向量 Aeq矩阵和beq向量分别为线性等式约束: Aeq X beq 中的系数矩阵和右端向量 X的下限和上限向量:vlb≤X≤vub 迭代初始点坐标 函数最小化的区间 优化选项参数结构,定义用于优化函数的参数 调用函数 linprog,quadprog fminbnd,fminsearch,fminunc, fmincon,lsqcurvefit,lsqnonlin, fgoalattain,fminimax quadprog linprog,quadprog,fgoalattain, fmincon, fminimax linprog,quadprog,fgoalattain, fmincon, fminimax linprog,quadprog,fgoalattain, fmincon,fminimax,lsqcurvefit, lsqnonlin 除fminbnd外所有优化函数 fminbnd 所有优化函数
第六讲 MATLAB仿真测量仪器
当图形为一个圆或椭圆时,表明被测信号与标准信号频率 相同;当图形为若干个稳定的闭环时,表明被测信号频率 与标准信号频率成倍数或约数关系,可以根据图形水平方 向切点数和垂直方向切点数之比,并读出此时标准信号的 频率,从而确定被测信号的频率。下图是不同频率比和相
位差下的几种李沙育图形。
RETURN
Spectrum Scope(频谱仪)主要参数设置
示波器显示的m序列波形图
频谱仪显示的m序列的频谱图
m序列波形图可看成m序列与以15为周期的冲激序列的卷积。
m序列频谱图是以15为周期的冲激序列的频谱与m序列的码 元(宽度为1)的方波对应的谱特性的相乘结果。
例2:周期为15 的冲激序列的时域波形和频谱。
常量模块产生一个常数或复数的 常量值,其输出可是标量、向量 或矩阵。
七路信号显示在同一示波器上
6.3.2
X-Y记录仪
最早X-Y记录仪的应用是观察李沙育图形,用标
准信号与待测信号形成的李沙育图形进行频率的测量。
例:用X-Y记录仪显示李沙育图形。
信号发生器参数设置
采样时间一般是X、Y输入信号中 较高的频率的信号周期的 1/10~1/20,否则看不到理想的李沙 育图形。
第六讲matlab仿真测量仪器数字式电压表参数设置对话框数字式电压表参数设置对话框第六讲matlab仿真测量仪器631示波器示波器用计算机仿真的示波器应用的是数字技术可以用计算机仿真的示波器应用的是数字技术可以观测单次现象正确设置参数后可以保持结束时的观测单次现象正确设置参数后可以保持结束时的波形
第六讲 MATLAB的仿真测量仪器
Time range: 默认为10,显示在 [0,10]区间的信号。若信号实际 持续时间超过设定时间,不显示 区间外内容。
第6章MATLAB编程精品PPT课件
MATLAB 基础教程
第6 章
6.1.1 创建和使用脚本文件
创建新的M-文件,只需在命令窗口的File菜单中选中New 菜单项,然后选中M-文件。在之后出现的编辑器/调试器窗口 中输入文件,用键盘和编辑器/调试器的Edit菜单创建和编辑文 件。
完成后,从编辑器/调试器的File菜单中选中Save菜单项。 在出现的对话框中,用example1等自我命名的文件名替换系 统所提供的默认名称,并单击Save菜单项。编辑器/调试器将 自动提供扩展名.m,并将文件保存在MATLAB当前目录中。
MATLAB 基础教程
6.1.5 编程风格
第6 章
推荐的脚本文件结构
注释部分
(1) 在第一行中放置程序名和任何关键词。 (2)在第二行中放置创建的日期,以及创建者的姓名。 (3) 每个输入和输出变量的变量名定义。 (4) 程序中调用的每个用户自定义函数名称。
输入部分:放置输入数据和/或输入函数。其允许输入数
保存了文件之后,用户就可以在MATLAB命令窗口中输入 脚本文件名example1以执行程序。用户应该会看到命令窗口 中所显示的结果。
MATLAB 基础教程
第6 章
6.1.2 有效使用脚本文件
(1) 脚本文件名必须满足MATLAB中标识符的命名规则……
(2) 为脚本文件赋予的名称不要与其所计算的变量名称相同。
(3) 为脚本文件赋予的名称要与MATLAB命令或者已有函数的 名称都不相同。
(4) 在交互模式中,脚本文件所创建的所有变量都是全局变量。 用户可以用who来查看之。
(5) 函数文件所创建的变量是该函数的局部变量。用户如果不 必访问脚本文件中的所有变量,就需要考虑使用函数文件。 这将避免用变量名“弄乱”工作空间,并将同时减少内存 需求。
matlab讲义第六章
>> max_rain=max(rains) % 将rains矩阵中的每一列的最大 值列出 max_rain = 328.8000 300.7000 268.3000 210.5000 278.4000 321.5000 >> [max_rain,x]=max(rains) % 将rains矩阵中的每一列的最大 值及其位置列出 max_rain = 328.8000 300.7000 268.3000 210.5000 278.4000 321.5000 x = 2 2 2 2 2 2 >> min_rain=min(rains) % 将rains矩阵中的每一列的最小值 列出 min_rain = 126.8000 148.5000 173.0000 148.4000 194.7000 208.9000
例如: >> rains % rains为一个2x6的矩阵 rains = 126.8 148.5 173.0 148.4 194.7 208.9 328.8 300.7 268.3 210.5 278.4 321.5 >> avg_rain=mean(rains) % 将rains矩阵中的每一列的平均 值列出 avg_rain = 227.8000 224.6000 220.6500 179.4500 236.5500 265.2000 >> avg_rain=mean(avg_rain) % 将上述矩阵中的平均值列出 avg_rain = 225.7083
使用函数须注意几点。函数一定出现在计算等式的 右边,等式左边是代表这个函数的计算值。此外,一个 函数可以被当做另一个函数的引用。 例如,log_x=log(abs(x))其中abs和log皆为内建 函数,其意思是 先计算abs(x),所得值再代入log函数。 三角函数和双曲线函数的使用,和一般数学式相似, 其语法也很直接易懂。 例如,三角函数有:sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x)。常用到的 双曲线函数有:sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x)。上述函数用法请参考 MATLAB的线上说明或使用手册。
Matlab基础及其应用教程06课件
6.1 数据统计处理
【例6.7】随机抽取15名健康成人,测定血液的凝血酶浓度 及凝血时间,数据如表6.3所示。分析凝血酶浓度与凝血时 间之间的相关性。
计算例6.7中两组数据的协方差,命令如下:
>> density=[1.1,1.2,1.0,0.9,1.2,1.1,0.9,0.6,1.0,0.9,1.1,0.9,1.1,1,0.7]; >> cruortime=[14,13,15,15,13,14,16,17,14,16,15,16,14,15,17]; >> C=cov(density,cruortime) C=
6.1 数据统计处理
【例6.5】某次射击选拔比赛中小明与小华的10次射击成绩 (单位:环)如表6.1所示,试比较两人的成绩。
>> hitmark=[7,4,9,8,10,7,8,7,8,7;7,6,10,5,9,8,10,9,5,6]; >> mean(hitmark,2) ans =
7.5000 7.5000 >> std(hitmark,[],2) ans = 1.5811 1.9579
4.8333 5.5000
% 奇数个元素 % 偶数个元素
6.1 数据统计处理
6.1.4 累加和与累乘积
求累加和的cumsum函数与求累乘积的cumprod函数。cumsum 函数的调用格式如下。
B = cumsum(X):如果X是一个向量,则返回累加和向量。如 果X是一个矩阵,返回的矩阵的第i列是X的第i列的累加和向
1.0000 -0.9265 -0.9265 1.0000
6.1 数据统计处理
6.1.5 统计描述函数
4.协方差 cov函数用于计算数据序列的协方差。调用格式如下。 C = cov(x):若x是向量,则返回x 的方差;若x是矩阵,则 x的每一行代表一个样本,每一列代表一个观测变量。 C = cov(x,y):返回变量x和y的协方差,x与y同样大小。如 果x和y是矩阵,则cov(x,y) 将x和y视为列向量,等价于 cov(x(:), y(:))。 如果两个变量的协方差是正值,说明两者是正相关的,即两 个变量的变化趋势一致;如果协方差为负值,则说明两者是 负相关的,即两个变量的变化趋势相反;如果协方差为0, 说明两者之间没有关系。
《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 的基础知识、高级功能、案例研究、实战项目和未来趋势等方面的内容。
Matlab 第六讲:符号计算
>> syms n; f=1/n^2; >> S=symsum(f,n,1,inf) >> S100=symsum(f,n,1,100)
例:计算函数级数 S
x n2 n 1
>> syms n x; f=x/n^2; >> S=symsum(f,n,1,inf)
下面的命令运行结果会是什么? f=2*u ans=4
f2=2*(u+2)
ans=14 ans=2*((a+2)+2) f3=2*x+2*y ans=6
>> subs(f3,[x,y],[x+y,x+y])
15
符号矩阵
使用 sym 函数直接生成
>> A=sym('[1+x, sin(x); 5, exp(x)]') 将数值矩阵转化成符号矩阵 >> B=[2/3, sqrt(2); 5.2, log(3)]; >> C=sym(B) 符号矩阵中元素的引用和修改 >> A=sym('[1+x, sin(x); 5, exp(x)]'); >> A(1,2) % 引用 >> A(2,2)=sym('cos(x)') % 重新赋值
9
基本符号运算
Matlab 符号运算采用的运算符和基本函数,在形状、名称 和使用上,都与数值计算中的运算符和基本函数完全相同
基பைடு நூலகம்运算符
普通运算:+ 数组运算:.* 矩阵转置:'
-
matlab7从入门到精通-[中国IT联盟www.ciun.in]第6章 matlab - 讲义
6.3.2 仿真结果分析 为了观察仿真结果的变化轨迹可以采用3种方法。 (1)把输出结果送给Scope模块或者XY Graph模块。 Scope模块显示系统输出量对于仿真时间的变化曲线,XY Graph模块显示送到该模块上的两个信号中的一个对另一 个的变化关系。 (2)把仿真结果送到输出端口并作为返回变量,然后使用 MATLAB命令画出该变量的变化曲线。 (3)把输出结果送到To Workspace模块,从而将结果直接 存入工作空间,然后用MATLAB命令画出该变量的变化曲 线。
(3)保存选项(Save options) 在保存选项栏中的“Format”下拉列表中有矩阵、结构和包 含时间的结构3种选择。“Limit data points to last”用来限 定保存到工作空间中的数据的最大长度。 输出选项(Output options)有: ① Refine output(细化输出) output ② Produce additional output(产生附加输出) ③ Produce specified output only(仅在指定的时刻产生输 出)
6.3.3 系统仿真实例 【例6.3】有初始状态为0的二阶微分方程 y" + 1.5y' + 10y = 2u'(t) + 10u(t),其中u(t)是单位阶跃函数,试建立 系统模型并仿真。 方法1:用微分/积分器直接构造求解微分方程的模型。 把原微分方程改写为 y" = 2u' (t) + 10u(t) − 1.5y' − 10y u经微分作用得u',y"经积分作用得y',y'再经积分模块作用就得y,而u'、 u、y'和y经代数运算又产生y",据此可以建立系统模型并仿真。 (1)利用Simulink模块库中的基本模块建立系统模型 (2)设置系统仿真参数。 在模型编辑窗口的 Simulation stop time栏把仿 真的停止时间设置为5。 (3)仿真操作。
MATLAB基础应用案例教程第六章
• (7) HorizontalAlignment 属性设置文本与指 定点的相对位置,可取值 left ( 默认值)、center 或 ri ght。
mal ( 默认值)、 bold、 light 或 demi。 • (4) FontAngle 属性设置斜体文字模式,取值可以是 no
rmal ( 默认值)、 italic 或 oblique。
上一页 下一页 返回
6.1 二维绘图功能
• (5) Rotation 属性设置字体旋转角,取值是数值量,默认 值为 0,取正值表示逆时针旋转,取负值表示顺时针旋转。
是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。 • (3) 省略 c 时,c = z,即颜色的设定正比于图形的高度。 • (4) 当x、 y 是向量时,x 的长度必须等于 z 矩阵的列,y 的长
度必须等于必须等于 z 的行,x、 y 向量元素的组合构成网格点的 坐标 (x。y),z 坐标则取自矩阵z,然后绘制三维曲线。
上一页 下一页 返回
6.1 二维绘图功能
• 2 函数图函数 • 语法格式:
• 说明: • (1) fun 必须是 m 文件的函数名或是独立变量为 x 的字符串。 • (2) fplot 函数不能画参数方程和隐函数图形,但在一个图上
可以画多个图形。
上一页 下一页 返回
6.1 二维绘图功能
• 【例 6 - 11】 建立函数文件 myfun1 m, 在 [ - 1。2] 区间上绘制 y = e2x + sin(3x2 ) 曲线。
有的允许属性。 • 2 获取图形对象属性
MATLAB课件 第6讲
π
y′′ − µ 1 − y 2 y′ + y = 0 y (0) = 1, y′(0 ) = 0, µ = 2
函数ode23和ode45是对一阶常微分方程组设计的,因此,对高阶常微 和 是对一阶常微分方程组设计的, 函数 是对一阶常微分方程组设计的 因此, 分方程,需先将它转化为一阶常微分方程组,即状态方程。 分方程,需先将它转化为一阶常微分方程组,即状态方程。 则可写出Van der Pol 方程的状态方程形式: 方程的状态方程形式: 令 x1 = y , x2 = y ′, 则可写出
求解器 Ode23 Ode45 Ode113 Ode23t Ode15s Ode23s Ode23tb ode15i 采用方法 2-3阶Runge-Kutta算法,低精度 算法, 阶 算法 4-5阶Runge-Kutta算法,中精度 阶 算法, 算法 Adams算法,精度可到 10 −3 ~ 10 −6 算法, 算法 梯形算法 Gear’s方向数值微分算法,中精度 方向数值微分算法, 方向数值微分算法 2阶Rosebrock算法,低精度 阶 算法, 算法 梯形算法,低精度 梯形算法, 可变秩方法 适用场合 非刚性 非刚性 非刚性, 非刚性, 适度刚性 刚性 刚性 刚性 完全隐式微分方程
∫
1
0
ln xdx .
(1)建立被积函数文件 )建立被积函数文件feln.m. function y=feln(x) y=exp(x).*log(x); (2)调用数值积分函数 求定积分。 )调用数值积分函数quadgk求定积分。 求定积分 format long; I=quadgk(@ feln,0,1) 3.梯形积分法 梯形积分法 在MATLAB中,对由表格形式定义的函数关系的求定积分问题用梯 中 形积分函数trapz.该函数调用格式如下。 该函数调用格式如下。 形积分函数 该函数调用格式如下 ●T=trapz(Y).例如:trapz([1:5;2:6]’) 例如: 例如 ●T=trapz(X,Y).
MATLAB_第6讲_GUI界面设计
MATLAB_第6讲_GUI界面设计GUI(Graphical User Interface)是指图形用户界面,是一种通过图形化方式与计算机程序进行交互的界面方式。
MATLAB提供了强大的GUI设计工具,使用户可以方便地创建各种交互式界面。
在MATLAB中,可以使用GUIDE(GUI Development Environment)工具来创建GUI界面。
GUIDE工具提供了可视化的界面设计器,可以通过拖拽和调整控件的位置、大小和属性来设计界面。
GUI界面的设计通常包括两个主要的步骤:界面的布局和界面的回调函数的编写。
首先是界面的布局,可以通过在GUIDE工具中添加各种控件来设计界面的布局。
常见的控件包括按钮、文本框、复选框、单选按钮、滑动条等。
可以使用GUIDE工具提供的布局管理器来帮助快速设计界面。
布局管理器可以帮助控件在窗口缩放时自动调整位置和大小,以适应不同大小的窗口。
在设计界面时,还可以设置每个控件的属性,例如文本框的初始文本、按钮的颜色、滑动条的范围等。
还可以为控件添加回调函数,以实现控件的响应操作。
回调函数可以是MATLAB脚本文件或匿名函数,用于处理控件的事件,例如按钮的点击事件、滑动条值的改变等。
接下来是界面的回调函数的编写。
当用户与界面上的控件进行交互时,会触发控件的相应事件,从而调用对应的回调函数。
回调函数可以进行各种操作,例如读取用户输入的数据、进行运算、更新界面上的显示等。
编写回调函数时,可以使用MATLAB提供的丰富的函数库和工具箱来完成各种操作。
例如,可以使用MATLAB内置的数据分析函数来处理用户输入的数据,使用图形绘制函数来展示计算结果,使用文件操作函数来读取和保存数据等。
在编写回调函数时,还可以使用MATLAB的错误处理机制来增加程序的稳定性。
可以使用try-catch结构来捕获可能出错的代码块,并在出错时进行相应的处理,例如弹出错误提示框、记录错误日志等。
通过GUI界面,用户可以通过直观的操作方式与MATLAB程序进行交互,使得使用MATLAB更加方便和灵活。
matlab基础教程教学课件杨德平第6章程序设计
end 说明 每当循环变量variable取expression中的一个值时,就执行循环体 statements一次,直到取完expression中的值。expression常用数组形成 表示。
【例6-4】编写求100!的程序,利用公式k!=(k-1)!×k。 s=1; for k=1:100 s=s*k; end s 运行结果如下: s= 9.3326e+157
表6-3 各种运算符优先级排序
优先级 最高
最低
运算符 ()小括号 ’转置 .^ 数组乘方 ^ 矩阵乘方 逻辑非(not,~) .* 点乘 ./点除 乘法 除法 加减法 冒号 关系操作符(==,~=,>,>=,<,<=) 逻辑与(and,&) 逻辑或、逻辑异或6(/1or,xor,|)
首页
6.2. 顺序语句
and(a,b)
| 或(or)
or(a,b)
6/1
~ 非(not)
not(a,b)
异或(xor)
xor(a,b) 首页
尚 辅 网 shangfuwang
逻辑操作运算法则如下: (1)a&b或and(a,b):表示a和b作“逻辑与”运算,当a和b全为非零时,运算 结果为1,否则为0; (2)a|b或or(a,b):表示a和b作“逻辑或”运算,当a和b只要有一个非零,运 算结果为1,否则为0; (3)~a或not(a):表示对a作“逻辑非”运算,当a是零时,运算结果为1,否 则为0; (4)xor(a,b):表示a和b作“逻辑异或”运算,当a和b的值一个为零,一个不 为零时运算结果为1,否则为0。
例如,判断当a为偶数时,显示a是偶数,并计算a/2;否则不作任何处理。 If rem(a,2)==0 disp('a is even') b=a/2; end
MATLAB选修课讲义
MATLAB选修课讲义第一讲:矩阵运算第二讲:函数作图第三讲:符号演算第四讲:简单编程第五讲:数值计算第六讲:综合实例1第一讲:矩阵运算1.基本操作启动退出终止(Alt+. 或Ctrl +C)翻页召回命令分隔符,禁显符;续行符…注释符%设置显示格式format 常用:short,short g,long 清除变量clear关闭图形close清除图形clf演示Demo帮助help2.基本常数2pi I j inf eps NaN exp(1)3.算术运算+ - * /, \, ^ sqrt .*./.^4.内部函数(一般都有数组运算功能)sin(x) tan(x) asin(x) atan(x)abs(x) round(x) floor(x)- ceil(x)+ log(x) log10(x) length(v) size(A)sign(x) [y, p]=sort(x)5.矩阵运算(要熟练掌握)(1)矩阵生成:手工输入:[1 2 3; 4 5 6]; 1:2:10输入数组: linspace(a, b, n)命令输入:zeros(m,n) ones(m,n) eye(n)3magic(n) rand(m, n)diag(A) diag ( [a11 a22 . . . a nn] ) (2)矩阵操作赋值A(i, j) =2 A(2, :)=[1 2 3]删除A( [2,3], :)=[ ] 添加A(6,8)=5定位find(A>0) 定位赋值A(A<0)= -1由旧得新B=A([2,3,1], :) B=A([1,3],[2,1])定位矩阵B=(A>1) B=(A==1)下三角阵tril(A) 上三角阵triu(A)左右翻转fliplr(A) 上下翻转flipud(A)重排矩阵reshape(A, m, n)(3)矩阵运算:转置A’和A+B 差A-B 积A*B4左除A\b(=A-1 b)右除b/A(=b A-1 )幂A^k点乘A.*B 点除A./B 点幂A.^2行列式det(A) 数量积dot(a,b) 向量积cross(a,b)行最简形rref(A) 逆矩阵inv(A) 迹trace(A)矩阵秩rank(A) 特征值eig(A) 基础解系null(A,’r’) 方程组特解x=A\b注意:2+A,sin(A)练习一:矩阵操作1、用尽可能简单的方法生成下列矩阵:56102000100012101/21/31/1112040022002311/31/41/12,,,0330600054082210010191/111/121/200750⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦⎢⎥-⎣⎦2、设有分块矩阵⎪⎪⎭⎫⎝⎛=⨯⨯⨯2232233S OR E A ,⎪⎪⎭⎫⎝⎛⋅=⨯⨯⨯23222233E O J R E B ,其中23,E E 是单位矩阵,32⨯O 是零矩阵,23⨯R 是随机矩阵,⎪⎪⎭⎫ ⎝⎛=⨯011022S ,J是2阶全1矩阵,验证B A=2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第六章 逻辑函数与控制结构课型:新授课教具:多媒体教学设备,matlab 教学软件一、目标与要求能够正确使用函数find ,正解和正确使用if/else 系列命令,理解switch/case 结构,正确使用for 循环和while 循环。
二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab 程序时能够熟练运用控制结构的相关函数实现相应的功能。
三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
四、教学内容上机内容回顾(1)创建温度换算表。
下列等式描述了华氏温度(T F )、摄氏温度(T C )、开氏温度(T K )和兰金温度(T R )之间的换算关系:009595459.6732F R F C R KT T RT T F T T =-=+=根据表达式解答以下问题:(a )创建数据表,把00F 到2000F 的华氏温度换算成开氏温度。
由用户输入华氏温度的步长,用disp 和fprintf 给表格添加标题和表头并输出格式化数据。
x=input('请输入步长');tf=0:x:200;tk=5/9*(tf+459.67);disp(' 温度换算表');disp('华氏 开氏');fprintf('%3.0f %6.2f\n',[tf;tk])请输入步长20温度换算表华氏 开氏0 255.3720 266.4840 277.5960 288.7180 299.82120 322.04140 333.15160 344.26180 355.37200 366.48>>(b)创建一个有25行数据的表,把摄氏温度换算成兰金温度。
由用户输入起始温度和合适的步长,用disp和fprintf给表格添加标题和表头并输出格式化数据。
x=input('请输入起始摄氏温度');y=input('请输入步长');tc=x:y:x+24*y;tr=9/5*tc+32+459.67;disp(' 温度换算表');disp('摄氏兰金');fprintf('%3.0f %6.2f\n',[tc;tr])请输入起始摄氏温度0请输入步长20温度换算表摄氏兰金0 491.6720 527.6740 563.6760 599.6780 635.67100 671.67120 707.67140 743.67160 779.67180 815.67200 851.67220 887.67240 923.67260 959.67280 995.67300 1031.67320 1067.67340 1103.67360 1139.67380 1175.67400 1211.67420 1247.67440 1283.67460 1319.67480 1355.67>>(c)创建数据表,把摄氏温度换算成华氏温度。
由用户输入起始温度、步长和数据的行数。
用dispm=input('请输入起始摄氏温度');n=input('请输入步长');w=input('请输入数据的行数')tc=m:n:m+(w-1)*n;tf=9/5*tc+32;disp(' 温度换算表');disp('摄氏 华氏');fprintf('%3.0f %6.2f\n',[tc;tf])请输入起始摄氏温度0请输入步长10请输入数据的行数5w =5温度换算表摄氏 华氏0 32.0010 50.0020 68.0030 86.0040 104.00>>(2)在t=0时刻,火箭的发动机关闭,此时火箭的海拔高度为500m ,提升速度为125m/s 。
考虑重力加速度,火箭的高度是时间的函数:29.82()125500,0h t t t t =-++f计算时间在0到30秒内火箭的高度,并画出曲线:● 用函数ginput 估算火箭的最大高度和火箭返回地面的时间。
● t=0:30;● h=-9.8/2*t.^2+125*t+500;● plot(t,h)● axis([0,30,0,1500])● [x,y]=ginput(4)● m=max(y)● [a,b]=ginput(4)● n=mean(a)x =11.993112.546112.753512.4770y =1.0e+003 *1.29171.29171.29611.29611.2961e+003a =29.066829.066828.928629.2742b =-2.19302.19302.19302.1930n =29.0841●用disp把结果在命令窗口显示出来。
disp('火箭的最大高度(单位/m):');disp(m)disp('火箭返回地面的时间(单位/s):');disp(n)火箭的最大高度(单位/m):1.2961e+003火箭返回地面的时间(单位/s):29.0841(3)完成下面的问题,用ginput在图形上截取数据:●绘制一个圆形并定义角度数组,范围在0到2π之间,步长为π/100。
●用ginput在圆周上截取两个点。
●用hold on保持图形,用直线连接刚刚截取两个点。
●用勾股定理计算两点间距离。
m=0:pi/100:2*pi;x=sin(m);y=cos(m);plot(x,y)hold onaxis([-1,1,-1,1])[a1,b1]=ginput(1);[a2,b2]=ginput(1);c=[a1 a2];d=[b1 b2];plot(c,d)z =1.9928一、逻辑函数——find命令find用于查找矩阵中符合某种条件的元素。
例如,美国海军学院要求招收学员的身高必须高于66,假设拟招学员的身高为:height=[63 67 65 72 69 78 75];用find命令查找符合身高要求的元素序号:accept=find(height>=66)accept =2 4 5 6 7函数find输出矩阵中符合要求的元素序号。
若需要查看身高的数值,可以用元素序号调出该元素height(accept)ans =67 72 69 78 75为了增加输出结果的可读性,使用函数disp和fprintf显示输出结果:The following candidates meet the height requirementCandidate # 2 is 67 inches tallCandidate # 4 is 72 inches tallCandidate # 5 is 69 inches tallCandidate # 6 is 78 inches tallCandidate # 7 is 75 inches tall完整代码:height=[63 67 65 72 69 78 75];accept=find(height>=66)height(accept)disp('The following candidates meet the height requirement');fprintf('Candidate # %4.0f is %4.0f inches tall\n',[accept;height(accept)])使用逻辑运算符可以创建更加复杂的搜索条件。
例如:除身高外,还要求学员的年龄必须在18岁到35岁之间。
身高,英寸年龄身高,英寸年龄63 18 69 3667 19 78 3465 18 75 12程序代码:applicants=[63 18;67 19;65 18;72 20;69 36;78 34;75 12];pass=find(applicants(:,1)>=66 & applicants(:,2)>=18 & applicants(:,2)<=35)result=[pass,applicants(pass,1),applicants(pass,2)]';fprintf('Application # %4.0f is %4.0f inches tall and %4.0f years old\n',result)在前面的例题中,只输出了符合条件元素的单一序号。
如果采用下面的语法结构调用函数find 可以输出符合条件元素的行、列号。
[row,col]=find(criteria)假设用一个矩阵表示门诊病人的体温。
查找体温高于98.6的病人的序号95.3100.298.697.499.298.9100.199.397.0temp ⎧⎫⎪⎪=⎨⎬⎪⎪⎩⎭程序代码:temp=[95.3 100.2 98.6 97.4 99.2 98.9 100.1 99.3 97]element=find(temp>98.6)[row,col]=find(temp>98.6)fprintf('Patient %4.0f at station %4.0f had a temp of %6.1f \n',[row,col,temp(element)]')二、选择结构(1)简单的if 语句if 语句的语法结构:if 逻辑表达式程序行end如果比较结果(逻辑表达式)为true ,那么执行if 语句和end 语句之间的程序代码。
若比较结果为false ,则程序直接跳转到end 之后的语句。
(2)if/else 结构在if/else 结构中,若条件满足,则执行某段程序;若条件不满足,则执行另外一段程序。
例如:在编写计算变量x 对数的程序。
根据初等数学中的概念可知函数log 的输入参数必须大于0。
在程序中使用if/else 结构,保证输入参数为正数时才计算x 的对数值。
若输入参数为0或负数,则输出错误信息: if x>0y=log(x) elsedisp('The input to the log function must be postive')end如果x 为矩阵,则只有当矩阵中所有元素都满足条件时,比较结果才为true 。
Eg: 如果输入x=0:0.5:2;则因为输入向量并非所有元素都大于0,因此则Matlab 会跳转到else 部分,输出错误信息。