MATLAB实用技巧精讲之二ppt课件.ppt
《MATLAB实用技巧精讲之二ppt课件.ppt》由会员分享,可在线阅读,更多相关《MATLAB实用技巧精讲之二ppt课件.ppt(53页珍藏版)》请在三一办公上搜索。
1、Page 1,第二章 MATLAB的数值计算功能多项式的运算。MATLAB矢量化。MATLAB的符号计算功能。,Page 2,MATLAB的数值计算功能:多项式运算,多项式的表示方法,例如:输入多项式 p(x)=x3-5x2+6x-33p=1 -5 6 -33;poly2sym(p)ans= x3-5*x2+6*x-33,Page 3,MATLAB的数值计算功能:多项式运算,求多项式的根用函数roots求解多项式的根例:求解方程 p(x)=2x4-5x3+6x2-x+9 的所有根p=2 -5 6 -1 9;roots(p)ans= 1.6024 + 1.2709i 1.6024 - 1.270
2、9i -0.3524 + 0.9755i -0.3524 - 0.9755i,Page 4,MATLAB的数值计算功能:多项式运算,多项式的四则运算(1)加法和减法 对于多项式的加法和减法,MATLAB 不提供专用的函数。(2)乘法和除法乘法由函数conv来实现,其使用格式为 c=conv(a,b)除法由deconv实现,其使用格式为 d=deconv(a,b),Page 5,MATLAB的数值计算功能:多项式运算,多项式的乘除运算乘法由函数conv来实现 除法由deconv实现例:计算两多项式的乘除法pd= 6 -195 432 -453 9 -792 -162;poly2sym(pd)an
3、s= 6*x6-195*x5+432*x4-453*x3+9*x2-792*x-162d=3 -90 -18;poly2sym(d)ans=3*x2-90*x-18p1=deconv(pd,d) p1 =2 -5 6 -1 9,Page 6,MATLAB的数值计算功能:多项式运算,对多项式求导数采用函数polyder对多项式求导数,polyder(p)例: p= 6 -195 432 -453 9 -792 -162;poly2sym(p)ans= 6*x6-195*x5+432*x4-453*x3+9*x2-792*x-162Dp=polyder(p)Dp = 36 -975 1728 -1
4、359 18 -792 poly2sym(Dp)ans=36*x5-975*x4+1728*x3-1359*x2+18*x-792,Page 7,MATLAB的数值计算功能:多项式运算,多项式拟合多项式拟合用拟合函数polyfit实现,调用格式polyfit(X, Y, n) X和Y为拟合数据,n为拟合多项式的阶数例:用5阶多项式对0, /2上的正弦函数进行拟合,并图示拟合情况。x=0:pi/20:pi/2; y=sin(x); a=polyfit(x,y,5);x1=0:pi/30:pi*2; y1=sin(x1);y2=a(1)*x1.5+a(2)*x1.4+a(3)*x1.3+a(4)*
5、x1.2+a(5)*x1+a(6);plot(x1,y1,b-,x1,y2,r*);legend(原曲线,拟合曲线)axis(0,7,-1.2,4),Page 8,MATLAB的数值计算功能:保存与再用,把Matlab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件 save 将工作空间中所有的变量存到matlab.mat文件中 save data 将工作空间中所有的变量存到data.mat文件中 save data a b 将工作空间中a和b变量存到data.mat文件中 load data 将data.mat记录的变量调入工作空间,Page 9,MATLAB的数值计算功能:
6、Matlab矢量化,何为矢量化问题尽量使用矩阵表述避免出现太多(两重或以上)的循环嵌套矢量化技术的目的在于改善程序的性能例1:有一200400矩阵data,for i = 1:200, for j = 1:400 , if data(i,j) 0 data(i,j) = 0; end end end,cputime=0.0470,data(data 0) = 0;,cputime=0.0160,Page 10,MATLAB的数值计算功能: Matlab矢量化,例2:上万个点的计算采用矢量化技术可以大幅度提高运算速度,%一般循环编程i=0;for t=0:.01:10000, i=i+1; y(
7、i)=sin(t);end,%矢量化编程t=0:.01:10000;y=sin(t);,cputime20秒,cputime=0.2340秒,Page 11,MATLAB的数值计算功能: Matlab矢量化,使用向量作索引如果 X 和 V 都为向量X(V) 就是 X(V(1), X(V(2), ., X(V(n)例:X=2 5 8 11 14 17 20 23 26 29 V=4 2 6X(V) 就是X(4) X(2) X(6),即 11 5 17,Page 12,MATLAB的数值计算功能: Matlab矢量化,创建和操作矩阵从向量构建矩阵例1:A = ones(5,5)*10;A = 10
8、; A = A(ones(5,5) ;例2:M = repmat(1:5, 1,3);,M = 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5,怎样用repmat生成55全10矩阵?,A = 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10,Page 13,MATLAB的数值计算功能: Matlab矢量化,排序、设置和计数max 最大元素 min 最小元素 sort 递增排序 unique 递增排序并且去掉相同元素例1:找出向量中最大元,返回其下标a=5 2 7 89 12 7 52
9、5 78;Y,I=max(a)Y = 525I = 7,Page 14,MATLAB的数值计算功能: Matlab矢量化,排序、设置和计数例2:向量元素排序a=5 2 7 89 12 7 525 78;sort(a)ans = 2 5 7 7 12 78 89 525 unique(a)ans = 2 5 7 12 78 89 525,Page 15,MATLAB的符号计算功能,1993年之前的符号计算语言:Maple、Mathematic和MathCAD等1993年Mathworks公司为了解决MATLAB用户对符号计算的需求,从加拿大滑铁卢大学购买了Maple的使用权,并在此基础上开发了符
10、号计算工具箱(Symbolic Toolbox)至此Matlab 不仅具有数值运算功能,具有符号计算功能,Page 16,MATLAB的符号计算功能,本部分包含内容符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程,Page 17,MATLAB的符号计算功能,符号运算与数值运算的区别数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。符号运算的特点:运算对象可以是没赋值的符号变量可以获得任意精度的解尽管MATLAB 7的符号运算功能很强大,但是一门优秀的语言应该能够博采众家之长。因此MATLA
11、B7语言提供了和MAPLE语言的良好接口,通过maple.m和map.m两个专用的M文件来实现。,Page 18,MATLAB符号变量和符号表达式的生成和使用,定义基本符号对象的指令有两个:sym, syms。它们的常用使用格式如下:f =sym(arg) %把数字、字符串或表达式arg 转换为符号对象f。syms(argv1, argv2, argvk) %把字符arg1, arg2, argk定义为 基本符号对象。syms argv1 argv2 argvk %上述格式的简洁形式。,Page 19,MATLAB符号变量和符号表达式的生成和使用,【例】符号常数形成中的差异。 a1=1/3,p
12、i/7,sqrt(5),pi+sqrt(5)a1 = 0.3333 0.4488 2.2361 5.3777 a2=sym(1/3,pi/7,sqrt(5),pi+sqrt(5)a2 = 1/3, pi/7, sqrt(5), pi+sqrt(5) a3=sym(1/3,pi/7,sqrt(5),pi+sqrt(5)a3 = 1/3, pi/7, sqrt(5), 6054707603575008*2(-50) a23=a2-a3a23 = 0, 0, 0, pi+5(1/2)-189209612611719/35184372088832,Page 20,MATLAB符号变量和符号表达式的生成
13、和使用,【例】使用sym函数定义符号表达式, a=sym(a);b=sym(b);c=sym(c); x=sym(x); f=a*x2+b*x+cf =a*x2+b*x+c,也可以采取整体定义法 f=sym(a*x2+b*x+c) f = a*x2+b*x+c,Page 21,MATLAB符号变量的生成和使用,【例题】用符号计算验证三角等式, syms fai1 fai2 y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2)y =sin(fai1-fai2), clear y=simple(sin(fai1)*cos(fai2)-cos(fai1)*
14、sin(fai2)? Undefined function or variable fai1.,Page 22,符号表达式(符号函数)的操作,符号表达式的四则运算 syms x y a b fun1=sin(x)+cos(y); fun2=a+b; fun1+fun2ans =sin(x)+cos(y)+a+b fun1*fun2ans =(sin(x)+cos(y)*(a+b) fun1/fun2ans =(sin(x)+cos(y)/(a+b),Page 23,MATLAB符号矩阵的创建,用Matlab函数sym创建矩阵命令格式:A=sym( ) 需用sym函数 需用 标识注意:数值矩阵A
15、=1,2;3,4有效,A=a,b;c,d 则不识别!例:B = sym(a , 2*b ; 3*a , 0) B = a, 2*b 3*a, 0这就完成了一个符号矩阵的创建。,符号矩阵的每一行的两端都有方括号,这是与 Matlab数值矩阵的一个重要区别。,Page 24,MATLAB符号矩阵的创建,用生成子矩阵的方法生成符号矩阵 命令格式:A= ; ,【例题】用生成子矩阵的方法生成符号矩阵 h1=55,ttt;44,1? Error using = vertcatAll rows in the bracketed expression must have the same number of
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 实用技巧 ppt 课件

链接地址:https://www.31ppt.com/p-2002415.html