MATLAB语言的数值运算课件

上传人:仙*** 文档编号:241779137 上传时间:2024-07-23 格式:PPT 页数:57 大小:895KB
返回 下载 相关 举报
MATLAB语言的数值运算课件_第1页
第1页 / 共57页
MATLAB语言的数值运算课件_第2页
第2页 / 共57页
MATLAB语言的数值运算课件_第3页
第3页 / 共57页
点击查看更多>>
资源描述
MATLAB基本运算符运 算加+1+2减-1-2乘*1*2除/或12或1/2幂342024/7/231系统特殊变量特殊变量意义Ans如果用户未定义变量名,系统用于Pi圆周率Inf无穷大Eps浮点数的精度,系统运算时所确定极小值NaN 或nan不定量,如0/0或inf/infI 或j虚数单位I=j=sqrt(-1)2024/7/232常用数学函数类型函 数含 义三角函数三角函数sin(x)正弦正弦值asin(x)反正弦反正弦值cos(x)余弦余弦值acos(x)反余弦反余弦值tan(x)正切正切指数函数指数函数exp(x)指数运算指数运算log(x)自然自然对数数sqrt(x)求平方根求平方根复数函数复数函数abs(x)求求绝对值imag(x)取出复数的虚部取出复数的虚部real(x)取出复数的取出复数的实部部conj(x)复数共复数共轭2024/7/233第二章MATLAB语言的数值运算教学目标介绍MATLAB的两种基本的数值运算,矩阵和表达式学习要求掌握矩阵和多项式的构造和运算方法,能够使用常用的几种函数进行简单的问题求解2024/7/234 2.1 矩阵2.2 向量2.3 数组2.4 多项式2024/7/2352.1 矩 阵矩阵是线性代数的基本运算单元,通常矩阵是指含有M行N列的数值和矩阵结构,每个元素可以是实数或复数,在线性代数中我们学习了矩阵的基本性质,了解了矩阵的基本运算,如:加、减、内积、逆矩阵、转置、线性方程式等。MATLAB支持线性代数所定义的全部矩阵运算。2024/7/236矩阵的信息获取2024/7/237MATLAB语言的数值运算MATLAB=matrix(矩阵)+laboratory(实验室)2024/7/2382.1.1矩阵的构造直接输入法三个符号:“”、“,”、“;”用中括号 把所有矩阵元素括起来同一行的不同数据元素之间用空格或逗号间隔用分号(;)指定一行结束可分成几行进行输入,用回车符代替分号数据元素可以是表达式,系统将自动计算结果,可以是实数,也可以是复数,复数用i,j 输入2024/7/239矩阵的构造A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16B=1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,15;4,abs(-8),12,162024/7/2310由函数创建和修改矩阵函 数说 明zeros产生元素全为0的矩阵ones产生元素全为1的矩阵eye产生单位矩阵rand产生均匀分布的随机数矩阵,数值范围(0,1)randn产生均值为0,方差为1的正态分布随机数矩阵diag获取矩阵的对角线元素,也可生成对角矩阵tril产生下三角矩阵triu产生上三角矩阵pascal产生帕斯卡矩阵magic产生幻方阵2024/7/2311由函数创建和修改矩阵MATLAB提供了大量的函数用于创建一些特殊的矩阵及其派生矩阵。zeros生成全部元素为0的零距阵(Zeros Array)A=zeros(n)生成nn零矩阵。A=zeros(m,n)或者A=zeros(m,n)生成mn的零矩阵。A=zeros(m,n,p,)或者A=zeros(m n p)生成mnp的零矩阵。B=zeros(size(A)生成和矩阵A大小相等的全零矩阵。ones生成全部元素为1的距阵A=ones(n)生成nn全1矩阵。A=ones(m,n)或者A=ones(m,n)生成mn的全1矩阵。A=ones(m,n,p,)或者A=ones(m n p)生成mnp的全1矩阵。B=ones(size(A)生成和矩阵A大小相等的全1矩阵。2024/7/2312 eye生成单位距阵A=eye(n)生成nn单位矩阵。A=eye(m,n)或者A=eye(m,n)生成mn的单位矩阵。B=eye(size(A)生成和矩阵A大小相等的单位矩阵。rand生成均匀分布的随机矩阵A=rand(n)生成nn随机矩阵。A=rand(m,n)或者A=rand(m,n)生成mn的随机矩阵。A=rand(m,n,p,)或者A=rand(m n p)生成mnp的随机矩阵。B=rand(size(A)生成和矩阵A大小相等的随机矩阵。A=rand 不带任何参数将产生一个随机数。提示:rand函数产生一个矩阵元素在0和1之间均匀分布的随机数的随机矩阵。2024/7/2313diag 生成一个对角阵或由对角线元素组成的向量 Adiag(V)当V为n维向量时,产生一个以向量V的元素为对角线的n维数组 Adiag(V)当V为n维矩阵时,产生 一个以V矩阵的主对角线元素为元素的n 维数组。tril:抽取主下三角;triu:抽取主上三角矩阵的变向 rot90:旋转;fliplr:上翻;flipud:下翻注意:在MATLAB中,不需要事先定义矩阵的维数,MATLAB自动为矩阵分配存 储空间。但如果在程序运行过程中采用零矩阵为矩阵生成的全部元素,或某一行、某一列的元素预先分配内存空间,将会大大加快MATLAB程序的运算速度。2024/7/23142.1.2 矩阵元素用下标来表示矩阵元素,同时可以利用下标对矩阵元素进行修改A(m,n)提取第m行,第n列元素A(:,n)提取第n列元素A(m,:)提取第m行元素A(m1:m2,n1:n2)提取第m1行到第m2行和第n1列 到第n2列的所有元素A(m:end,n)提取从第m行到最末行和第n列的子块2024/7/2315例:例:修改矩阵A中元素的数值A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0);则矩阵变为:A=0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 12024/7/23162.1.3 矩阵的运算MATLAB对于矩阵与矩阵之间的运算的处理方法与线性代数的相同1、矩阵的“+”、“-”是对应元素的加减,相同维数或其中一个为标量2、矩阵的除法,“”、“/”左除和右除,A矩阵是非奇异矩阵,则A/B或AB可以运算X=AB是方程A*X=B的解X=B/A是方程X*A=B的解2024/7/23172.1.3 矩阵的运算3、矩阵的乘方,A是一个方阵,P是正整数,则AP表示A自乘P次4、矩阵的转置A,I行j列与j行I列元素互换5、求逆矩阵,用函数A-1=inv(A)6、求特征值,用函数eig(A)7、求特征多项式,用函数poly()8、求方阵的行列式,用函数det()2024/7/2318基本矩阵运算基本矩阵运算运算命令说 明A矩阵转置An矩阵求幂,n可以为任意实数A*B矩阵相乘A/B矩阵右除(一般的除法,A/B=AB)AB矩阵左除(一种倒置的除法,AB=BA)A+B矩阵相加A-B矩阵相减inv矩阵求逆,注意不是所有的矩阵都有逆矩阵det求方阵的行列式rank求矩阵的秩eig求矩阵的特征向量和特征值svd对矩阵进行奇异值分解norm求矩阵的范数2024/7/2319 A=16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1 A+A A*A 矩阵转置A,加一个矩阵到它的转置得到一个对称矩阵。用矩阵去乘它的转置也能得到对称矩阵。2024/7/23202.1.4 矩阵的关系运算关系运算符:(小于)、(大于)=(大于或等于)、=(等于)、=(不等于)。关系运算符的运算法则:关系运算将对两个矩阵的对应元素进行比较。2024/7/2321 1.矩阵加、减运算(AB、AB)规则:相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。MATLAB允许参与运算的两矩阵之一是标量,标量与矩阵的所有元素分别进行加减操作。例:A=1 2 3;4 5 6 B=3 4 5;7 8 9 C=3 A+B=4 6 8;11 13 15 A+C=4 5 6;7 8 9 B+C=6 7 8;10 11 122024/7/23222.矩阵乘运算 A*B:A矩阵的列数必须等于B矩阵的行数。s*A 或 A*s:标量可与任何矩阵相乘,标量s分别与矩阵A每个元素相乘。例:A=1 2 3;4 5 6;7 8 0;B=1;2;3;C=A*B C=14 32 23 D=-1;0;2;F=pi*D F=-3.1416 0 6.2832 2024/7/2323 3.矩阵除运算及线性方程组的解 在线性代数中没有矩阵的除运算,只有矩阵逆的运算,在MATLAB中有两种矩阵除运算。A/B 矩阵右除,相当于 Ainv(B)AB 矩阵左除,相当于 inv(A)B 因此,x=AB 是线性方程组Ax=B的解。例:求解方程组 3x1+x2 -x3 =3.6 x1+2x2+4x3 =2.1 -x1+4x2+5x3 =-1.4 A=3 1-1;1 2 4;-1 4 5;B=3.6;2.1;-1.4;x=AB x=1.4818 -0.4606 0.38482024/7/23244.矩阵乘方 An A自乘n次幂A为方阵,n为大于1的整数 例a=1,2,3;4,5,6;7,8,9;a2 ans=30 36 42 66 81 96 102 126 150 2024/7/2325矩阵的逻辑运算矩阵的与运算A&B或and(A,B)对应元素相与,有0则0全1则1矩阵的或运算A|B,亦作or(A,B)对应元素相与,有1则1全0则0矩阵的非运算 A,亦作not(A)每位元素是0则1,否则为0(取反)矩阵的异或运算,xor(A,B)相异则1否则为0注:(MATLAB没有专门定义逻辑变量)非0即1,维数相同的两个矩阵或其中一个为标量可以进行逻辑运算2.1.5 矩阵的逻辑运算2024/7/2326必须是两个同维矩阵或其中一个矩阵为标量才能进行 MATLAB提供了一些逻辑函数逻 辑 函 数功 能all如果所有的元素都是非零值,返回1;否则,返回0。any如果有一个元素为非零值,那么返回1;否则,返回0isempty判断是否空矩阵isequal判断两矩阵是否相同isreal判断是否是实矩阵find返回一个由非零元素的下标组成的向量2024/7/23272.1.6 矩阵函数函 数功 能det计算矩阵所对应的行列式的值diag抽取矩阵对角线元素eig求特征值和特征向量inv求矩阵的逆阵lu三角分解Poly求特征多项式Rank求矩阵的秩Svd奇异值分解2024/7/23281求矩阵的行列式的值 X=1 2 3 0;5 6 0 8;9 0 11 12;0 14 15 16;det(X)ans=-54642024/7/23292.求矩阵的秩 X=-2 1 1;0 2 0;-4 1 3;rank(X)ans=33求逆矩阵Y=inv(X)Y=-1.5000 0.5000 0.5000 0 0.5000 0 -2.0000 0.5000 1.00002024/7/23304求特征值和特征向量 X=-2 1 1;0 2 0;-4 1 3;V D=eig(X)V=-0.7071 -0.2425 0.3015 0 0 0.9045 -0.7071 -0.9701 0.3015D=-1 0 0 0 2 0 0 0 22024/7/23315矩阵分解 X=-2 1 1;0 2 0;-4 1 3;L,U=lu(A)%三角分解 L=0.5000 0.2500 1.0000 0 1.0000 0 1.0000 0 0U=-4.0000 1.0000 3.0000 0 2.0000 0 0 0 -0.50002024/7/23326 求解线性方程组 =a x =b例:x1+2x2=8 2x1+3x2=13方程ax=ba=1 2;2 3;b=8;13;两种解法x=inv(a)*b x=ab x=x=2.00 2.00 3.00 3.002024/7/23332.2 向量向量是矢量运算的基础行向量列向量 2024/7/23342.2.1 向量的构造1逐个输入a=1 3 9 10 15 16%采用空格和逗号分隔构成行向量b=1;3;9;10;15;16%采用分号隔开构成列向量2利用冒号表达式“:”生成向量x=1:2:9%初值=1,终值=9,步长=2z=1:5%初值=1,终值=5,默认步长=12024/7/2335x=i:j 如果ij,则生成x空向量。x=i:j:k 如果j0,且ik或jk,则生成向量x=i,i+j,i+2j,.,k;如果j0,且ik或j0且i x=linspace(1,9,5)%初值=1,终值=9,元素数目=5利用logspace生成向量logspace生成等比向量,其用法与linspace相同。2024/7/2338linspace函数生成等差向量,其功能类似于冒号算子x=i:j,调用格式如下:x=linspace(a,b)生成有100个元素的行向量x,其元素值在a、b之间线性分布。默认值x=linspace(a,b,n)生成有n个元素的行向量x,其元素值在a、b之间线性分布。2024/7/2339x=logspace(a,b)生成有50个元素的行向量x,其元素起点x(1),终点x(50)=。x=logspace(a,b,n)生成有n个元素的行向量x,其元素起点x(1),终点x(50)。例 利用linspace函数生成等差向量,利用logspace函数生成等比向量。a=linspace(1.5,6.0,5)%元素值在1.5和6.0之间的5个数b=logspace(0,2,4)%元素值在 和 之间的4个数2024/7/23402.2.2 向量的运算1点积:dot函数2叉积:cross函数例 a=1 2 3;b=4 5 6;c=dot(a,b)d=cross(a,b)c=32d=-3 6 -3 2024/7/23412.3 数组数组运算方式是一种元素对元素的运算(不按照线性代数的规则);除了加、减法与矩阵相同以外,乘、除、幂的数组运算符都是通过在标准的运算符前面加一个圆点一个圆点来生成。2024/7/2342数组运算 x=1 2 3;4 5 6;7 8 9;y=9 8 7;6 5 4;3 2 1;x+y%数组和矩阵的加法规则相同数组和矩阵的加法规则相同ans=10 10 10 10 10 10 10 10 10 x.*y%两数组必须有相同的行和列两数组必须有相同的行和列.数组乘法:对应元素相乘数组乘法:对应元素相乘ans=9 16 21 24 25 24 21 16 9 x*y%矩阵乘法:按照线性代数理论进行ans=30 24 18 84 69 54 138 114 902024/7/2343a./b=b.aa.b=b./aa./b=b.a 都是a的元素被b的对应元素除a.b=b./a 都是a的元素被b的对应元素除 给出a,b对应元素间的商.例:a=1 2 3;b=4 5 6;c1=a.b;c2=b./ac1=4.0000 2.5000 2.0000c2=4.0000 2.5000 2.0000z1=a.2z2=a.b2024/7/23442.4 多项式 matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。如多项式式子多项式用行向量表示:matlab规定多项式系数向量用行向量表示,一组根用列向量表示。2024/7/23452.4.1 多项式的生成与表达直接输入法直接输入法 函数函数polypoly(A A)生成)生成例:已知向量A=1 34 80 0 0,用此向量构造的多项式并展开。(x-1)(x+34)(x+80)(x-0)(x-0)PA=poly(A)%表明以表明以A向量向量中的数为中的数为根根PAX=poly2sym(PA,X)%亦可以亦可以A为系数得到多项式为系数得到多项式 X5+113 X4+2606 X3-2720 X22024/7/23463.求值函数polyval可以将某个特定数值代入多项式函数polyvalm可以求出当多项式中的未知数为方阵时的值。4.求导使用polyder函数对多项式求导。2024/7/2347(1).conv多项式乘运算多项式乘运算例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=1 2 3;b=4 5 6;c=conv(a,b)=conv(1 2 3,4 5 6)c=4.00 13.00 28.00 27.00 18.00p=poly2str(c,x)p=4 x4+13 x3+28 x2+27 x+182024/7/2348(2).deconv多项式除运算a=1 2 3;c=4.00 13.00 28.00 27.00 18.00d=deconv(c,a)d=4.00 5.00 6.00d,r=deconv(c,a)余数余数c除除a后的整数后的整数2024/7/2349p=1.00 -6.00 -72.00 -27.00;r=roots(p)r=12.12 -5.73 -0.39(3).多项式求根运算roots2024/7/2350多项式的其他基本运算(4)求值函数polyval可以将某个特定数值代入多项式函数polyvalm可以求出当多项式中的未知数为方阵时的值。(5)求导使用polyder函数对多项式求导。2024/7/2351数据分析与插值函数max 各列最大值各列最大值 mean 各列平均值各列平均值sum 各列求和各列求和std 各列标准差各列标准差var 各列方差各列方差sort 各列递增排序各列递增排序数据拟合和插值函数数据拟合和插值函数2024/7/2352多项式的拟合Polyfit(x,y,n)表示用最小二乘法来对已知数据x,y进行拟合,以求得n阶多项式的系数向量,输入参数中n即为要拟合的多项式的阶次。p,s=Polyfit(x,y,n)输入参数与上面相同,它返回拟合的多项式的系数向量p,向量s为使用函数polyval获得的错误估计值。阶次越大,精度越高。2024/7/2353插值运算插值的定义是对某些集合给定的数据点之间函数的估值方法。当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。Matlab提供了一维、二维、三次样条等许多插值方法选择2024/7/2354table1 table2 intep1 interp2 spline v利用已知点确定未知点v粗糙 精确v集合大的 简化的插值函数插值函数补充说明:plot(x,y)subplot(mnp)x=1:(2*pi/200):2*pi;subplot(221);plot(x,sin(x);subplot(223);plot(x,cos(x)2024/7/2355常用多项式函数函 数含 义Roots求多项式的根Poly用根构造多项式Polyval计算多项式的值Polyvalm计算参数为矩阵的多项式的值Residue部分分式展开Polyfit多项式数据拟合Polyder微分Conv乘法deconv除法2024/7/2356此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!