哈工大matlab讲义第三讲
MATLAB基础(第三讲)
![MATLAB基础(第三讲)](https://img.taocdn.com/s3/m/1d1f922fccbff121dd3683c1.png)
4.9 稀疏矩阵(exp5.m)
对于矩阵描述的线性方程组来说,n个未知数就 涉及(n×n)的方程组,存储这个方程组就需 要n^2个字的内存和正比于n^3的计算时间 多数情况未知数只与数量不多的变量有关,即 关系矩阵是稀疏的 矩阵的存储方式:全存储和稀疏存储 sparse函数:将矩阵存储方式转为稀疏形式 full函数:将矩阵存储方式转为全元素方式
Matlab及其应用
3
复习提问(exp1.m):
%复习综合训练测试程序 a=[1:0.7:3 10;-linspace(2.2,4.7,3) 1;6+i,-4i,5+6i 11] b=a([1:3],[1 2 3]) c=fix(b') d=real(c) f=d+length(a)+diag([a(1,1),a(10),a(2,4)]) g=reshape(f,1,[]) h=f>find(g==max(g))
Matlab及其应用
7
4.8 字符串比较(exp4.m)
1、字符串比较函数 strcmp:比较两个字符串是否相等 strncmp:比较两个字符串前n个字符是否相等 2、字符串的关系运算 要求有相等的维数 或是其中一个是标量 3、字符串识别 isletter识别一个字符是否为字母 isspace判断一个字符是否是空白符(空格、制表符(Tab)、换行 符) isstr识别是否是字符串
Matlab及其应用 2
复习:
上节课的主要内容: 5、矩阵操作(引用、赋值、删除) 6、矩阵的大小(size、length) 7、矩阵操作函数(flipud、fliplr、rot90、reshape、triu、 tril) 8、矩阵的查找与排序(find、sort)
matlab课件第三章
![matlab课件第三章](https://img.taocdn.com/s3/m/2026a9c9bb4cf7ec4afed026.png)
3.1 矩阵分析
(2)正交(QR)分解函数 将矩阵A分解为一个正交矩阵与另一个矩阵的乘积称为矩阵A 的正交分解。 qr(A ) 格式一:[Q, R]= R]=qr(A qr(A) 功能:产生与 A同维的上三角矩阵 R和一个实正交矩阵 Q ,满 *R,Q’*Q=I。 足: A=Q A=Q* qr(A ) 格式二:[Q,R,E]= [Q,R,E]=qr(A qr(A) 功能:产生一个置换矩阵E,一个上三角矩阵R(其对角线元素 *R; 降序排列)和一个归一化矩阵Q,满足A*E=Q E=Q*
x
p
⎛ =⎜ ⎜ ⎝
∑
i
⎞ xi ⎟ ⎟ ⎠
p
Ax x
A
p
= max
x
p p
当 p = 2 时 为 常 用 的 欧 拉 范 数 , 一 般p 还 可 取 l 和 ∞ 。 这 在 MATLAB中可利用norm函数实现,p缺省时为p=2。 格式:n=norm (A) max(svd(A ))。 功能:计算矩阵A的最大奇异值,相当于n= n=max(svd(A max(svd(A)) 格式:n=norm (A, p) 功能:norm 函数可计算几种不同类型的矩阵范数,根据p 的不 同可得到不同的范数。
3.1 矩阵分析
2.矩阵求逆及行列式值 ⑴矩阵求逆函数inv及行列式值函数det 逆矩阵的定义:对于任意阶 n×n 方阵A,如果能找到一个同阶 )。 的方阵 V,使得满足: A*V=I。其中 I为n 阶的单位矩阵 eye(n eye(n) 则 V就是 A的逆矩阵。数学符号表示为:V=A-1。逆矩阵V存在 的条件是A的行列式不等于0。 inv(A ) 格式:V= V=inv(A inv(A) 功能:返回方阵A的逆矩阵V。 det(A ) 格式:X= X=det(A det(A) 功能:计算方阵A的行列式值。
matlab第三讲2013
![matlab第三讲2013](https://img.taocdn.com/s3/m/d4abfdbc65ce0508763213d8.png)
三 数据分析函数
MATLAB在进行数据分析时的约定: (1) 若输入宗量x是向量,那么不管是行向量还是列向 量,运算是对整个向量进行的.
(2) 若输入宗量x是二维数组,那么默认指令运算是 按列进行的.
(3) 若输入宗量x是二维数组,并且指定了维数信息, 则按指定的维进行。对二维矩阵,第1维为列,第2 维为行.
T=deconv(T1, T3) (T, r)=deconv(T1,T3)
T3为分母
商多项式
余式
例 多项式的加减乘除运算
f1(x)=2x5+5x4+4x2+x+4,
T1=[2,5,0,4,1,4]; T2=[0,0,5,1,3,2]; T=T1+T2; T_add=poly2str(T,’x’) T=T1-T2; T_sub=poly2str(T,’x’) T=conv(T1,T2); T_mul=poly2str(T,’x’) T3=[5,1,3,2]; % 除法运算中分母多项式第一个系数不能为0 [A_coe, A_r]=deconv(T1,T3); T_coe=poly2str(A_coe,’x’) T_rem=poly2str(A_r,’x’)
f2(x)=5x3+x2+3x+2
3 多项式求值
例 多项式求值,求f (x)=2x5+5x4+4x2+x+4在x=0.5处的函 数值 T1=[2,5,0,4,1,4]; x=0.5; y=polyval(T1,x)
4 多项式求根---roots
例 求多项式f1(x)=2x5+5x4+4x2+x+4的根 T1=[2,5,0,4,1,4]; root=roots(T1); poly(root)
Matlab第3章讲稿
![Matlab第3章讲稿](https://img.taocdn.com/s3/m/5664f153ad02de80d4d84034.png)
2.符号表达式的提取分子和分母运算 . 格式: 格式:[n,d]=numden(s) 功能:函数提取符号表达式s的分子和分母 的分子和分母, 功能:函数提取符号表达式 的分子和分母, 分别将它们存放在n与 中 分别将它们存放在 与d中。
a* x / y + b* y / x
G(s) = 5( s + 1) s 2 ( s + 3)
3.2.2
diff(s) diff(s,’x’,n) diff(s,‘x’) diff(s,n)
符号导数
如: >> f=sym('sin(w*t+pi/3)'); >> F1=diff(f,'t')
3.2.3
符号积分a,b)
调用格式为: 调用格式为: int(‘被积表达式’,‘积分变量’,‘积分 积分变量’ ( 被积表达式’ 下限’ 下限’, 积分上限') ‘积分上限 )—— 定积分 ——缺省时为不定积分 缺省时为不定积分 > >> syms a x b >> f=1/(a*x+b) >> int(f,x) >> int(f,x,2,10) ans = (log(10*a+b)-log(2*a+b))/a ans = log(a*x+b)/a
练习:
已知 f
= cos(3 arccos x),试将其展开
4、符号表达式的化简 、
simplify(s): : simple(s): :
2 2 例3 已知数学表达式 y ( x) = 2 cos x − sin x, 试将其进 行简化。 行简化。
5、subs函数用于替换求值 、 函数用于替换求值
(完整版)matlab第三讲教案
![(完整版)matlab第三讲教案](https://img.taocdn.com/s3/m/d2e0baa958fb770bf68a553e.png)
西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第三章课型:新授课教具:多媒体教学设备,matlab教学软件一、目标与要求掌握matlab中内置的初等数学函数、三角函数、数据分析函数等函数的运用。
二、教学重点与难点本堂课教学的重点在于引导学生在命令窗口进行一些简单的计算,对matlab初等的数学函数能够熟练运用,并能写一些matlab的简单程序解决实际问题。
三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
四、教学内容一、课程内容回顾上节课主要学习了数据显示格式、复数的运算、算术运算等。
(1)短数据格式和长数据格式之间的显示切换(2)15+16i,求该复数的模和辐角,实部与虚部(3)[1:3;2:4;3:5],求矩阵的转置初等数学函数包括对数函数、指数函数、绝对值函数、四舍五入函数和离散数学中的函数。
我们今天课程的任务就是掌握这些函数的运用。
二、常用的数学函数练 习创建矢量x,在-9到12之间,步长为3 (1)求x 除以2的商 (2)求x 除以2的余数 (3)e x(4)求x 的自然对数ln(x) (5)求x 的常用对数lg(x)(6) 用函数sign 确定矢量x 中哪些元素为正 (7)将显示格式变为rat ,显示x 除以2的结果 Eg: x=-9:3:12;(1) x/2;(2) rem(x,2);(3)exp(x);(4)log(x );(5)log10(x);(6)sign(x);(7)format rat;x/2三、取整函数Matlab 中有几种不同的取整函数。
其中最常用的是四舍五入。
然而取上近似还是取下近似要根据实际情况而定。
例如,在杂货店买水果,苹果0.52美元一个,5美元能买几个?5.009.61540.52/=苹果苹果但是在现实生活中,显然不能买半个苹果,而且也不能四舍五入到10.所以,只能向下取近似值9.四、离散数学中的函数离散数学就是有关数的数学,也就是中学代数里的因式分解、求最大公因数和最小公倍数。
MATLAB选修课讲义
![MATLAB选修课讲义](https://img.taocdn.com/s3/m/77e51f084a7302768e993912.png)
MATLAB选修课讲义第一讲:矩阵运算第二讲:函数作图第三讲:符号演算第四讲:简单编程第五讲:数值计算第六讲:线性代数第七讲:综合实例第一讲:矩阵运算1.基本操作启动退出终止(Alt+. 或Ctrl +C)翻页召回命令分隔符,禁显符;续行符…注释符%设置显示格式format 常用:short,short g,long 清除变量clear关闭图形close清除图形clf演示Demo帮助help2.基本常数pi 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) mod(m,n)5.矩阵运算(要熟练掌握)(1)矩阵生成:手工输入:[1 2 3; 4 5 6]; 1:2:10输入数组: linspace(a, b, n)命令输入:zeros(m,n) ones(m,n) eye(n)magic(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(4,5)=6定位find(A>0) 定位赋值A(A<0)= -1 由旧得新B=A([2,3,1], :) B=A([1,3],[2,1])矩阵拼接C=[A, B] C=[A; B]定位矩阵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*B左除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、用尽可能简单的方法生成下列矩阵:102000100012101/21/31/1112040022002311/31/41/12,,,0330600054082210010191/111/121/20000750⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦⎢⎥-⎣⎦2、设有分块矩阵⎪⎪⎭⎫ ⎝⎛=⨯⨯⨯2232233S O R E A ,⎪⎪⎭⎫⎝⎛⋅=⨯⨯⨯23222233E O J R E B ,其中23,E E 是单位矩阵,32⨯O 是零矩阵,23⨯R 是随机矩阵,⎪⎪⎭⎫ ⎝⎛=⨯011022S ,J是2阶全1矩阵,验证B A =2。
Matlab课程第三讲-2012-pdf
![Matlab课程第三讲-2012-pdf](https://img.taocdn.com/s3/m/0b35001b0066f5335b812124.png)
»xlabel(' x '), ylabel(' y=f(x) '), title('
Second Order Curve Fitting ‘)
曲线拟合图形用户接口
为了方便用户的使用,在MATLAB中提供了曲线拟合 的图形用户接口。它位于MATLAB图形窗口的Tools 菜单下面的Basic Fitting菜单。在使用该工具时 ,首先将需要拟合的数据采用函数plot( )画图, 其MATLAB代码如下: >> clear all; x=[0.2 0.3 0.5 0.6 0.8 0.9 1.2 1.3 1.5 1.8]; y=[1 2 3 5 6 7 6 5 4 1]; figure; plot(x,y,'bo');
y2 =
y=1./(sin(x)+exp(-x.^2));
1.0861
figure;
fill(x,y,'r');
常微分方程
常微分方程(Ordinary Differential Equation, ODE)求解是高等数学的基础内容,在实际中有广泛的 应用。MATLAB提供了很多函数用于求解常微分方程, 包括常微分方程的符号解和常微分方程的数值解。
b
n
f (x)dx lim
a
x0
f (i )xi
i1
其中f(x)称为被积函数,f(x)dx称为被积表达式,x称为
积分变量,a称为积分下限,b称为积分上限,区间[a, b]
称为积分区间。
求解定积分的数值方法有很多,例如简单的梯形法 、Simpson法和Romberg法等等都是数值分析课程中 经常介绍的方法。它们的基本思想是将整个积分空 间分割成若干个子空间。这样积分问题,就转换为 求和问题。
数学建模第三讲:Matlab教程和入门
![数学建模第三讲:Matlab教程和入门](https://img.taocdn.com/s3/m/edf163446f1aff00bfd51e87.png)
21
2.2 命令窗口 (续)
n 简单计算(续)
【例2.2-2】计算sin(454 ) >>sin(45*pi/180)
ans= 0.7071
l Matlab中正弦函数sin就是常见的正弦函数。 l 它的参数值是以“弧度”为单位的。
l pi也是Matlab的预定义变量。 l pi=3.14159…
l Matlab对字母大小写是敏感的。
18
2.1 启动与退出MATLAB (续)
菜单栏 工具栏 文件编辑窗口
命令窗口
工作空间
历史命令 窗口
Start 菜单
命令提示符
2020-2-12
Application of Matlab Language
19
2.2 命令窗口的使用
± 激活命令窗口。 ± “>>” 与闪烁的光标一起表明系统就绪,等待输入。 ± 命令窗口脱离MATLAB桌面。
因此,MATLAB是一个简单易用、功能强大的高效编程语言。
2020-2-12
Application of Matlab Language
13
n 功能强大
n 数值运算优势 n 符号运算优势(Maple) n 强大的2D、3D数据可视化功能 n 许多具有算法自适应能力的功能函数
2020-2-12
Application of Matlab Language
l 这里以 Matlab 7.0.4 为例 l 自 R2008a 开始增加了激活要求
n 必须安装的部件
• Matlab
• Symbolic Math Toolbox
• Extended Symbolic Math
2020-2-12
2012年MATLAB第三章-2.3.3
![2012年MATLAB第三章-2.3.3](https://img.taocdn.com/s3/m/3a85b0f0941ea76e58fa0481.png)
Ti (C ) 19.1
25.0 30.1 36.0
Ri ( ) 76.30 77.80 79.25 80.80
82.35 83.90 85.10
列表如下
正规方程组为
245.3 a0 565.5 7 245.3 9325.83 a 20029.445 1
27.0 26.8
建立y与t的关系 y=f(t)
先画出散点图
从图可看出y与t近似直线 y=a+bt
注意:因图不是严格的直线,所以a,b怎样选择都不可能使直
线 通过所有点 问题: 怎样选择a,b使得直线与实际情况近可能的接近。
由给定的点可写出如下方程组 a= 27.0
a+b=26.8
a+2b=26.5 …
求血药浓度随时间的变化规律c(t).
10
2
c(t ) c0 e
10
1
kt
c, k为待定系数
0 2 4 6 8
10
0
半对数坐标系(semilogy)下的图形
拟合问题实例3
已知某大学生工作以后6年的工资,预测他10年后的工资 x y 0 1 1 1.6 2 2.1 3 2.4 4 3.2 5 3.4
解方程组得
a0 70.572, a1 0.921
故得R与T的拟合直线为 R=70.572+0.921T
R=70.572+0.921T
利用上述关系式,可以预测不同温度时铜导线 的电阻值。例如由R=0 得T= 242.5 ,即预测温度
T 242.5C 时,铜导线无电租。
例2 已知实验数据如下表
x x 1 1 9 27 16 64 25 125 36 216 49 343 64 512 81 729 100 1000 381 3017
Matlab基本教学讲义
![Matlab基本教学讲义](https://img.taocdn.com/s3/m/597d4e6702020740be1e9bc0.png)
Matlab基本教學講義環境的基本使用方法Matlab Command Window的指令選單上有幾個選項File Edit View Window HelpFile選單上第一個指令New分有三個選項M-file →開啟一個新的檔案用來編輯matlab程式。
副檔名*.m,如同C語言程式的副檔名*.cpp或是*.c一樣。
Figure →開始一個新的圖檔。
Model →開啟一個新的simulink檔案。
Help選單上有選項可以幫助指令的查詢一些基本指令的操作運算元數學運算元加+減-乘.*除./轉置‘次方.^比較運算元小於<大於>小於等於<=大於等於>=等於==不等於~=邏輯運算元and &or |not ~矩陣矩陣的表示方法若輸入指令為A=[1 2 3;4 5 6;7 8 9]則視窗顯示出A= 1 2 34 5 67 8 9則A(1,1)=1,A(1,2)=2,A(1,3)=3A(2,1)=4,A(2,2)=5,A(2,3)=6A(3,1)=7,A(3,2)=8,A(3,3)=9特殊符號 冒號”:”繼續之前的陣列A,若輸入A( : )則會出現長數列1~9。
若輸入A( : , 3)則出現ans =369若輸入A(1:1:3,1:2)則出現ans =1 24 578其中A(X:Y:Z,P:Q) 之中若表示法為X:Y:Z 時:X 表示起始值Y 表示公差Z 表示終止值若表示法為P:Q 時P 為起始值Q 為終止值公差= 1for、if等條件式的使用forfor I = 1:n (或是1:n可改成1:x:n,其中x則為公差)運算式endifif 條件式1運算式1elseif 條件式2運算式2elseif 條件式3運算式3…………………else運算式nend副程式的設計(*.m)function 傳回值=函式名稱(引數1,引數2,…..)運算式………………例如%I am bababa.....hahahaha……………….%Matlab is easy la.....function result=summation(a,b)%.....%.....result=sum(a:b);%Oh~bye bye.....%後面的文字為註解,程式不會執行。
matlab教学第三章解析
![matlab教学第三章解析](https://img.taocdn.com/s3/m/da20f7782cc58bd63086bd02.png)
1 0.8 0.6 0.4 0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
7
8
9
10
2020/11/23
线性插值
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4-0.6来自-0.8-10
1
2
3
4
5
6
7
8
9
10
三次样条插值
20
3.2.2 高维插值 N维插值函数:interpN() 其中:N可以为2,3,...,等。例如,N=2为二维
2020/11/23
12
对于三次样条插值呢,每一个区间上的三次函 数的四个参数,在该区间上由两个端点的函数 值只能够产生两个方程,仅此不足以唯一确定 四个参数。
注意到三次样条函数对整体光滑性要求,其二 阶导数存在且连续,从全局的角度上考虑参数 个数与方程个数的关系如下:
参数:每个小段上4个,n个小段共计4n个。
不能够超过x的范围。
2020/11/23
16
2.对于三次样条插值,还可以采用命令: y=spline(x,y,xi) 该命令还可处理第一类边界条件,只需将输入数
组y改为yy=[a y b],其中a,b分别为S (x0), S (xn)。
3.若要得到插值函数,可以采用以下函数: pp1=spline(x,y) disp(pp1.coefs) 则显示分段插值函数的系数数组。
第3章 插值方法
2020/11/23
1
在工程实践和科学实验中,常常需要从一组实 验观测数据,揭示自变量x与因变量y之间的关 系,一般可以用一个近似的函数关系式: y=f(x)来表示。函数f(x)的产生办法因观测数 据与要求的不同而异,通常可以采用两种方法: 一个是插值的方法,一个是曲线拟合的方法。
Matlab软件入门(第三讲)PPT课件
![Matlab软件入门(第三讲)PPT课件](https://img.taocdn.com/s3/m/c95bc24fe2bd960591c6771f.png)
Matlab软件入门讲义
第11页
作出参数方程函数的图象
• ezplot('5*cos(t)+6*t','15*sin(t)',[0 2*pi])
数学建模工作室 2020/11/27
Matlab软件入门讲义
第12页
作出参数方程函数的图象
• ezplot('5*cos(t)+6*t','15*sin(t)',[0 4*pi])
数学建模工作室 2020/11/27
Matlab软件入门讲义
第14页
Matlab矩阵运算
• 二维矩阵操作
>>A = [ 1,2,3,4; 5 6 7 8; 9,10,11,12]
>>A(2,3) = 5
>>B = A(2,1:3)
>>A = [A,B’]
//增补一列
>>A(:,2) = []
//删去第2列
数学建模工作室 2020/11/27
Matlab软件入门讲义
第4页
作出函数y=sin(x)/x的图形
• 第三种方式: • ezplot('sin(x)/x',[-20 20 -1 1.2]);
数学建模工作室 2020/11/27
Matlab软件入门讲义
第5页
作出函数y=sin(x)/x的图形
• 第四种方式:
子函数:
function y=fun(x,n) %这是一个正玄函数泰勒展开的子函数 y=0; for i=1:n
y=y+((-1)^(i-1))*(x.^(2*i-1))/prod(1:(2*i-1)); end
MATLAB实验讲义
![MATLAB实验讲义](https://img.taocdn.com/s3/m/bd5d46e8172ded630b1cb69b.png)
MATLAB实验讲义目录实验大纲 (2)实验一/二 MATLAB的基础操作 (3)实验三 MATLAB运算基础(一) (3)实验四 MATLAB运算基础(二) (4)实验五循环结构程序设计(一) (5)实验六循环结构程序设计(二) (5)实验七 MATLAB的绘图操作(一) (6)实验八 MATLAB的绘图操作(二) (7)实验九函数和文件(一) (7)实验十函数和文件(二) (7)实验十一线性代数中的数值计算问题 (8)实验十二 MATLAB函数库的运用(一) (9)实验十三 MATLAB函数库的运用(二) (10)《MATLAB》课程实验教学大纲课程名称:MATLAB(MATLAB)课程编号:16072327课程性质:选修实验总学时:27实验室名称:电子设计自动化一、课程简介:本课程是电气工程及其自动化、自动化、电力工程与管理专业本科生的学科基础选修课,它在线性代数、信号分析和处理、控制系统设计和仿真等方面有着广泛的应用。
主要是学习MATLAB的语法规则、基本命令和使用环境,使学生掌握MATLAB的基本命令和基本程序设计方法,提高使用该语言的应用能力,具有使用MATLAB语言编程和调试的能力,以便为后续多门课程使用该语言奠定必要的基础。
二、课程实验目的与要求:1.基本掌握MATLAB在线帮助功能的使用、熟悉MATLAB运行环境和MATLAB语言的主要特点,掌握MATLAB语言的基本语法规则及基本操作命令的使用,学会M文件的建立和使用方法以及应用MATLAB实现二维和三维图形的绘制方法,具有使用MATLAB语言编程和调试的能力。
2.初步掌握MATLAB在电路和信号与系统中的应用。
3.能根据需要选学参考书,查阅手册,通过独立思考,深入钻研有关问题,学会自己独立分析问题、解决问题,具有一定的创新能力。
三、主要仪器设备及台(套)数:计算机50台、MATLAB软件五、主要参考书目:1.《MATLAB及在电子信息课程中的应用》陈怀琛、杨吉斌编著,电子工业出版社,2002年1版2.《MATLAB7.0编程基础》王家文、王皓、刘海等;机械工业出版社,2005年7月3.《MATLAB教程——基于6.x版本》张志涌、徐彦琴等;北京航空航天大学出版,2001年4月出版实验一/二 MATLAB的基础操作一、实验目的1、掌握MATLAB的启动和退出。
MATLAB哈工大讲义第三讲.ppt
![MATLAB哈工大讲义第三讲.ppt](https://img.taocdn.com/s3/m/300cf17819e8b8f67d1cb918.png)
2020/变换
• FFT即快速傅立叶变换,是数据分析的基本 方法,是x由基2的快速变换算法来计算。 如x长度不是精确的2次幂则后面使用0填充 ,ifft(x)是向量x的离散傅立叶变换的逆变换 。
• 在频率轴 上 绘 制 FFT曲线,要明确FFT结果
• 如果x0出界,则对应值为NaN
•
例程:ex42.m
2020/5/28
baowen@
2、曲面插值
• 插值函数: interp2,基本形式:
• zi=interp2(x,y,z,xi,yi,method) • method包括 • linear:线性 • cubic:三次多项式 • nearest:粗略估计数据 • 例程:ex43
2020/5/28
baowen@
一、曲线拟合
• 1、多项式的最小二乘曲线拟合
• 使用polyfit,它需要曲线的x、y值,以及曲 线的阶数。
• 曲线的阶数:如果曲线的阶数选择的过小, 拟合效果不好;如果曲线的阶数过高,虽然
数据点上看到效果好,数据点之间会出现有 数据振荡的问题,阶数不宜过高,小于5阶。
2020/5/28
baowen@
4、微分
• 微分描述了函数在一点处的斜率,是函 数的微观性质,它对函数的微小变化十 分敏感,函数的很小的变化,容易产生 相邻点斜率的巨大变化。
• 尽量避免使用数值微分,尤其是试验数 据的微分。如果迫切需要,最好先将试 验数据进行最小二乘拟合伙这三次样条 拟合,然后对拟合函数进行微分。
baowen@
三、奇异值分解
• [u,s,v]=svd(a) • 实现奇异值分解。 • 分解得到的三个因数有如下关系
• a=u*s*v
• 其中u矩阵和v矩阵是正交矩阵,s矩阵是 对角矩阵,它的对角元素是a矩阵的奇异 值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
baowen@
4、微分
• 微分描述了函数在一点处的斜率,是函 数的微观性质,它对函数的微小变化十 分敏感,函数的很小的变化,容易产生 相邻点斜率的巨大变化。 • 尽量避免使用数值微分,尤其是试验数 据的微分。如果迫切需要,最好先将试 验数据进行最小二乘拟合伙这三次样条 拟合,然后对拟合函数进行微分。
baowen@
3、积分
• 有限区域内积分 函 数 : trapz、quad和quad8 。 • 函数trapz通过计算梯形面积的和近似函数 的积分,函数的分割是人为地。 • quad使用Simpson递归方法,quad8使用 Newton-costes递归方法进行数值积分。为了 获得更精确的结果,它们在所需的区间都 计算被积函数。quad8比quad更精确。
2018/10/20
三次样条
• pp形式可以和三次多项式形式转化: • [break,coef,np,nc]=unmkpp(pp) • 断点、三次多项式、多项式数量、系数数量 • pp=mkpp(break,coef);
• 由于转化为了多项式形式,可以方便的进行 积分和微分运算。
2018/10/20
2018/10/20
baowen@
微分方程
• 输入变量t0、tf为积分的启始和中止时间, 单位是秒。x0为初始的状态向量。tol控制 结果的精度,可以缺省。一般来说,ode45 比ode23运算速度快一些。 d 2x 2 dx • Var der Pol微分方程 dt2 (1 x ) dt x 0 • 重新定义变量,令 x1=x x2=dx/dt • 则 dx1/dt=x2 dx2/dt=u(1-x12)x2-x1
2018/10/20
baowen@
二、三角分解
• 三角分解把矩阵分解为上三角矩阵和下 三角矩阵,又称为LU分解或者。计算中 使用高斯变量消去法。这一分解使用 • [l,u]=lu(a)实现。
2018/10/20
baowen@
三、奇异值分解
2018/10/20
baowen@
二、多项式运算
• 函数conv进行乘法运算,deconv进行除 法运算。MATLAB没有提供特别的多项 式加减法运算。 • 多项式除法并不一定能够除尽,很多时 候需要有余数多项式。 • 多项式微分使用polyder(p)函数,估计值 使用polyval(p,at)函数。
2018/10/20
baowen@
2、求零点
• 函数fzero可以寻找一维函数的过零点。 • 应用:使用bode图判断控制系统稳定性 ,要看幅频特性过零点和相频特性过 1800点。 • fzero函数也可以寻找函数值等于常值点 ,只要重新定于函数为f(x)-c即可
2018/10/20
baowen@
四、滤波和平滑
• • • • •
1、插值和拟合的问题:噪声 2、滤波: 滞后,filter y=filter(b,a,x) a,b:滤波器的分子分母,x输入 a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... a(na+1)*y(n-na) • 例程:ex46 baowen@
2018/10/20
baowen@
例题
• 求出y=x*sin(x) 在0<x<100的每个峰值 • 思路: • 1、数学上峰值就是导数为零的点 • 2、导数在matlab中可以使用差分代替 • 3、差分后怎么求过零点呢?
2018/10/20
baowen@
FFT
• 需要注意的是fft结果为复数矩阵,为了 得到幅频特性,可使用abs函数,使用 atan2得到相角,由于有的系统的相角可 能大于1800,而相角函数值域在1800~1800之间,需要使用unwrap函数展 开折叠的相角,从而得到相频特性。
2018/10/20
baowen@
2018/10/20
baowen@
三、三次样条
• 1、使用的原因 • 高阶多项式插值出现病态问题,三次 样条使用分段多项式,各点上的三次导 数相等。它光滑、导数连续。 • 2、插值 • yi=spline(x,y,xi); • pp=spline(x,y); 分段多项式形式 • 例程:ex44 baowen@
• • • • • • 函数名 含义 max 最大值 min 最小值 mean 均值 std 标准方差 median 中值
20Байду номын сангаас8/10/20
baowen@
分析函数
• • • • • • 函数名 含义 sum 元素的总和 prod 元素的乘积 cumrod 元素的累积 cumsum 元素的累加和 diff 差分函数:少了一个元素
6 微分方程数值解
• 常微分方程数值解用逐步积分方法实现, Runge-Kutta法是应用最多的微分方程数值 解的方法。两种Runge-Kutta法函数: • [t,x]=ode23(„xfun‟,t0,tf,x0,tol,trace) • [t,x]=ode45(„xfun‟, ,t0,tf,x0,tol,trace) • 这两种方法格式相同。其中xfun为定义的常 微分方程函数名,该函数必须以为输出, 以t、x为输入。
2018/10/20
baowen@
应用举例
• 一、特性拟合 q k p 0.4 b • title(‘string’) ^上标 _下标 • 二、模型辨识的阶数确定
• 三、数值积分:已知加速度求速度,
2018/10/20
baowen@
2018/10/20
baowen@
5、FFT变换
• FFT即快速傅立叶变换,是数据分析的基本 方法,是x由基2的快速变换算法来计算。 如x长度不是精确的2次幂则后面使用0填充 ,ifft(x)是向量x的离散傅立叶变换的逆变换 。 • 在频率轴 上 绘 制 FFT曲线,要明确FFT结果 与实际频率点的关系。设n个数据点,采样 频率为fs,则Nyquist频率或n=N/2+1点与实 际频率的关系: f=(num-1)*fs/n baowen@ 2018/10/20
2018/10/20
baowen@
4 曲线拟和与插值
• 在分析试验数据中,常常要面临将试验 数据作解析描述的任务,这个问题有曲 线拟合和插值两种方法。 • 在曲线拟合中,假定已知曲线的规律, 作曲线的最佳逼近,但不需要经过所有 的数据点;在插值中,认为数据是准确 的,求取其中描述点之间的数据。
baowen@
matlab
二、插值函数
• 1、曲线插值函数interp1 • 方法 t=interp1(x,y,x0,‟method‟) • x、y:原始数据点,x0为进行插值的数组 ,method为插值算法:线性插值('linear'),三 次样条插值('spline'), 三 次 多 项 式 插 值 („cubic‟). • 如果x0出界,则对应值为NaN • 例程:ex42.m
3 多项式处理
一、多项式表示
• 多项式在MATLAB中使用降幂系数的行 向量表示。表示中需要包含零系数的项 。poly2str:control toolbox中的函数 • 使用函数roots可找出多项式等于零的根 。 • 规定:多项式用行向量,根用列向量。 • 给出多项式的根,使用poly函数也可以构 造出相应的多项式。
2018/10/20
baowen@
一、曲线拟合
• 1、多项式的最小二乘曲线拟合 • 使用polyfit,它需要曲线的x、y值,以及曲 线的阶数。 • 曲线的阶数:如果曲线的阶数选择的过小, 拟合效果不好;如果曲线的阶数过高,虽然 数据点上看到效果好,数据点之间会出现有 数据振荡的问题,阶数不宜过高,小于5阶。 • 灵活使用拟合
2018/10/20
• • • • • • •
3、平滑 yi=csaps(x,y,P,xi) yi=csaps(x,y,P) 其中P为平滑因子0~1 0: 最小二乘 1:平滑近似 ex46 ex45
2018/10/20
baowen@
5 数据分析
• 1、极小化 • MATLAB提供了fmin和fmins两个函数来 求极值,它们分别寻找一维和n维函数的 极值。它使用的单纯性法搜索。函数计 算量大,或搜索区内有多极值,搜索的 过程较长,也可能找不到极值。如找不 到极值,将停止运行并提供解释。 • 寻找极大值点,重定义函数为-f(x)即可。
目录
1 矩阵分析
2 数据分析函数 3 多项式处理 4 曲线拟和与插值
5 数据分析
6 微分方程数值解
2018/10/20 哈尔滨工业大学动力工程控制与仿真研究所
baowen@
<
>
主菜单
退出
1 矩阵分析
• 一、特征值分解 对于方阵a特征值问题:ax=rx,求取a阵的特 征值和特征向量使用下面的方法: [v,d]=eig(a) • 使用 [v,d]=eig(a,‟nobalance‟) • “平衡” 的作用减少计算误差,不平衡用于A 阵大小悬殊的时候。 • 广义特征值问题:ax=rbx,求解的方式为: • [v,d]=eig(a,b)
2018/10/20
baowen@
matlab
2、直接最小二乘
• 数据规律并不是多项式形式,直接最小 二乘来拟合。
• 最小二乘函数为k=nnls(fx,y)
• 计算结果将使得|fx*k-y|2范数下最小 • 在计算中,fx可以为x的函数。 • 例子:拟合
2018/10/20
• [u,s,v]=svd(a) • 实现奇异值分解。 • 分解得到的三个因数有如下关系 • a=u*s*v • 其中u矩阵和v矩阵是正交矩阵,s矩阵是 对角矩阵,它的对角元素是a矩阵的奇异 值。 • 奇异值分解的稳定性很好。