02第二章MATLAB的数值计算

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/1/151第二章MATLAB的数值计算机电学院石青010-68918231shiqing@bit.edu.cn2020/1/152主要内容1.矩阵运算2.基本数学函数3.多项式运算4.代数方程组求解2020/1/1531、矩阵运算MATLAB原意为矩阵实验室,而且MATLAB所有的数值功能都以(复)矩阵为基本单元进行的,因此MATLAB对矩阵的运算可谓最全面、最强大。对于一个数据,MATLAB用1×1矩阵表示;对于一组数据,MATLAB用1×n矩阵来表示。2020/1/154例:a=1.5;Whosa%显示变量a的信息NameSizeBytesClassa1×18doublearraySL=‘Iamagoodman’;WhosSL%显示变量SL的信息NameSizeBytesClassSL1×1530chararray2020/1/1551.1矩阵的生成直接输入小矩阵规则:①矩阵元素必须用[]括住②矩阵元素必须用逗号或空格分隔③在[]内矩阵的行与行之间必须用分号分隔④矩阵元素可以为表达式,可以为复数a=[123;456;789],b=[1:3;4:6;7:9]c=[1:2:10],d=[2pi/2;sqrt(3)3+5i]2020/1/1561.1矩阵的生成从外部数据文件读取loadscore.dat用户编写m文件产生矩阵如:score2.m则在命令行直接键入score2就可产生score2矩阵2020/1/1571.1矩阵的生成利用matlab内部函数产生矩阵例如:b=eye(3);单位阵c=ones(2,5);全一阵d=zeros(3,2);全零阵e=rand(2,3);[0,1]之间随机阵f=randn(2,3);正态分布随机阵2020/1/158例:分别建立3×3、3×2和与某矩阵A同样大小的零矩阵。(1)建立一个3×3零矩阵。zeros(3)(2)建立一个3×2零矩阵。zeros(3,2)(3)设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。A=[123;456];%产生一个2×3阶矩阵Azeros(size(A))%产生一个与矩阵A同样大小的零矩阵2020/1/159例:建立随机矩阵1.在区间[20,50]内均匀分布的5阶随机矩阵2.均值为0.6、方差为0.1的5阶正态分布随机矩阵命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。2020/1/1510魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,…,n^2共n^2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n(≥3)阶魔方阵。2020/1/1511例:将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。M=100+magic(5)2020/1/1512a=linspace(n1,n2,n)在线性空间上,行矢量的值从n1到n2,数据个数为n。缺省n为100。》a=linspace(1,10,10)a=12345678910a=logspace(n1,n2,n)在对数空间上,行矢量的值从10n1到10n2,数据个数为n,缺省n为50。这个指令为建立对数频域轴坐标提供了方便。》a=logspace(1,3,3)a=1010010002020/1/15131.2矩阵的修改直接修改可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。指令修改可以用A(,)=来修改。2020/1/1514a=[120;305;789]a=120305789a(1,2)=4;a(4)=4;a=140305789例:a(2,1:3)=[51015];a(2,1:end)a=120510157892020/1/1515矩阵元素的访问访问矩阵的元素需要使用矩阵元素的索引使用矩阵元素的行列全下标形式A(*,*)使用全下标形式访问矩阵元素的方法简单、直接,同线性代数的矩阵元素的概念一一对应使用矩阵元素的单下标形式A(*)矩阵元素的单下标是矩阵元素在内存中存储的序列号,一般地,同一个矩阵的元素在连续的内存单元中(元素的排列以列元素优先)2020/1/1516矩阵元素的访问矩阵元素的访问说明A(i,j)访问矩阵A的第i行第j列上的元素,其中i和j为标量A(i,:)访问矩阵A中第i行的所有元素A(:,j)访问矩阵A中第j列的所有元素A(:)访问矩阵A中的所有元素,将矩阵看成一个向量A(L)使用单下标的方式访问矩阵元素,其中L为标量2020/1/1518矩阵元素的访问矩阵元素的单下标与全下标之间的转换关系以m×n的矩阵为例第i行第j列的元素全下标转换为单下标LL=(j-1)×m+i例:A(1,2)→A(5)m=4,n=5,i=1,j=2L=(j-1)×m+i=(2-1)×4+1=52020/1/1519矩阵元素的访问sub2ind:根据全下标计算单下标ind2sub:根据单下标计算全下标2020/1/1520矩阵行列删除利用空矩阵可从矩阵中删除指定的行或列。如,要删除第二行b(2,:)=[]要删除第二列b(:,2)=[]注意:将矩阵某元素附空值与赋零值完全不同b(1,2)=[]出错!b(1,2)=0可以2020/1/15211.3矩阵的计算a)矩阵加、减(+,-)运算规则:1.相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。2.允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。2020/1/15221.3矩阵运算b)矩阵乘()运算规则:A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。a=[123;456;780];b=[1;2;3];c=a*b;d=2*bc=14d=23242362020/1/15231.3矩阵运算c)矩阵除(\、/)运算矩阵除的运算在线性代数中没有,有矩阵逆的运算,在MATLAB中有两种矩阵除运算:左除“\”和右除“/”。a\b运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。2020/1/15241.3矩阵运算a^n——a自乘n次幂方阵任意实数d)矩阵乘方——a^n※当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。2020/1/1525inv——矩阵求逆pinv——矩阵伪逆det——行列式的值eig——矩阵的特征值diag——对角矩阵1.4矩阵的其它运算rank——矩阵的秩trace——矩阵的迹’——矩阵转置sqrt——矩阵开方size——矩阵大小2020/1/1526对角矩阵X=diag(v,k)将向量v写入矩阵X的主对角线上,而矩阵X的其他元素为零。K表示上移或下移行数,k=0则恰好在主对角线上,当k=0时可以默认不写。v=diag(X,k)从矩阵X中提取对角线元素到向量v上。k表示提取上移k行或下移k行的对角线元素。2020/1/1527例:v=[1234];diag(v)ans=1000020000300004v=[1234];diag(v,1)ans=0100000200000300000400000v=[1234];diag(v,-1)ans=00000100000200000300000402020/1/15281.5矩阵的一些特殊操作矩阵的变维a=[1:12];b=reshape(a,3,4)c=zeros(3,4);c(:)=a(:)矩阵的变向rot90:旋转;fliplr:左右翻;flipud:上下翻矩阵的抽取diag:抽取主对角线;tril:抽取主下三角;triu:抽取主上三角矩阵的扩展2020/1/15292、基本数学函数函数的主要类别三角函数指数运算函数复数运算函数圆整和求余函数函数在处理参数时,是按照数组运算的规则进行的2020/1/1530三角函数函数说明函数说明函数说明sin正弦函数tanh双曲正切函数csch双曲余割函数sinh双曲正弦函数atan反正切函数acsc反余割函数asin反正弦函数atan2四象限反正切函数acsch反双曲余割函数asinh反双曲正弦函数atanh反双曲正切函数cot余切函数cos余弦函数sec正割函数coth双曲余切函数cosh双曲余弦函数sech双曲正割函数acot反余切函数acos反余弦函数asec反正割函数acoth反双曲余切函数acosh反双曲余弦函数asech双曲反正割函数tan正切函数csc余割函数2020/1/1531指数运算函数函数说明函数说明exp指数函数realpow实数幂运算函数log自然对数函数reallog实数自然对数函数log10常用对数函数realsqrt实数平方根函数log2以2为底的对数函数sqrt平方根函数pow22的幂函数nextpow2求大于输入参数的第一个2的幂2020/1/1532复数运算函数函数说明函数说明abs求复数的模,若参数为实数则求绝对值real求复数的实部angle求复数的相角unwrap相位角按照360°线调整complex构造复数isreal判断输入的参数是否为实数conj求复数的共轭复数cplxpair复数阵成共轭对形式排列image求复数的虚部2020/1/1533圆整和求余函数函数说明函数说明fix向0取整的函数mod求模函数floor向-∞取整的函数rem求余数ceil向+∞取整的函数sign符号函数round向最近的整数取整的函数2020/1/15343、多项式运算函数名说明conv多项式乘法deconv多项式除法poly由多项式的根构造系数多项式polyval求多项式的值polyfit多项式的曲线拟和polytool多项式的曲线拟和工具compan由系数多项式生成伴随矩阵polyeig多项式的特征值2020/1/15353、多项式运算函数名说明Polyvalm求矩阵多项式的值sym2poly由符号多项式构成系数多项式poly2sym由系数多项式构成符号多项式polyder求符号多项式的微商表达式polyint求符号多项式的积分表达式residue分式多项式展开成部分分式roots求多项式的根TaylortoolTaylor级数工具2020/1/1536MATLAB语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。f(x)=anxn+an-1xn-1+……+a0系数向量:p=[anan-1……a1+a0]例:3.1多项式的表示543()25313pxxxxxP=[1250313]2020/1/1537多项式的阶次是依照系数向量的长度减1而得。N=size(p)-1symsxP=x^5+2*x^4+5*x^3+13+x;P=sym2poly(P)P=1250113poly2sym(P)ans=x^5+2*x^4+5*x^3+x+132020/1/1538已知4阶PASCAL矩阵A,求其多项式向量、多项式的根,并与矩阵A的特征值比较。解:A=pascal(4)A=1111123413610141020P=poly(A)P=1-2972-291R=roots(P)R=26.30472.20340.45380.0380eig(A)ans=0.03800.45382.203426.30472020/1/15393.2conv多项式乘运算例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=[123];b=[456];c=conv(a,b)=conv([123],[456])c=4.0013.0028.0027.0018.00p=poly2str(c,'x')p=4x^4+13x^3+28x^2

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功