2 matlab的数值运算

合集下载

matlab2_matlab教程

matlab2_matlab教程

x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x= 1.00 0 x=
x1 1 2 3 1 x2 = 2 3 4 2 x3
a
x = b
x=pinv(a)b
0.83 0.33
0
-0.17
六、微分方程求解
微分方程求解的仿真算法有多种,常用 的有Euler(欧拉法)、Runge Kutta(龙 格-库塔法。 Euler法称一步法,用于一阶微分方程
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10]; a.*b ans = 2 8 18 4 15 30 49 72 90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
a*b ans = 25 55 85
37 85 133
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
rand —— 随机矩阵
eye —— 单位矩阵
zeros ——全部元素都为0的矩阵
ones ——全部元素都为1的矩阵
还有伴随矩阵、稀疏矩阵、魔方 矩阵、对角矩阵、范德蒙等矩阵的创 建,就不一一介绍了。
注意:matlab严格区分大小写字母,因
此a与A是两个不同的变量。 matlab函数名必须小写。

Matlab中常用的数值计算方法

Matlab中常用的数值计算方法

Matlab中常用的数值计算方法数值计算是现代科学和工程领域中的一个重要问题。

Matlab是一种用于数值计算和科学计算的高级编程语言和环境,具有强大的数值计算功能。

本文将介绍Matlab中常用的数值计算方法,包括数值积分、数值解微分方程、非线性方程求解和线性方程组求解等。

一、数值积分数值积分是通过数值方法来近似计算函数的定积分。

在Matlab中,常用的数值积分函数是'quad'和'quadl'。

'quad'函数可以用于计算定积分,而'quadl'函数可以用于计算无穷积分。

下面是一个使用'quad'函数计算定积分的例子。

假设我们想计算函数f(x) = x^2在区间[0, 1]上的定积分。

我们可以使用如下的Matlab代码:```f = @(x) x^2;integral = quad(f, 0, 1);disp(integral);```运行这段代码后,我们可以得到定积分的近似值,即1/3。

二、数值解微分方程微分方程是描述自然界各种变化规律的数学方程。

在科学研究和工程应用中,常常需要求解微分方程的数值解。

在Matlab中,可以使用'ode45'函数来求解常微分方程的数值解。

'ode45'函数是采用基于Runge-Kutta方法的一种数值解法。

下面是一个使用'ode45'函数求解常微分方程的例子。

假设我们想求解一阶常微分方程dy/dx = 2*x,初始条件为y(0) = 1。

我们可以使用如下的Matlab代码:```fun = @(x, y) 2*x;[x, y] = ode45(fun, [0, 1], 1);plot(x, y);```运行这段代码后,我们可以得到微分方程的数值解,并绘制其图像。

三、非线性方程求解非线性方程是指方程中包含非线性项的方程。

在很多实际问题中,我们需要求解非线性方程的根。

matlab数值运算和符号运算

matlab数值运算和符号运算

《深度探讨:从数值运算到符号运算的MATLAB应用》在科学计算领域中,MATLAB无疑是一个不可或缺的工具。

它被广泛应用于数学建模、数据分析、图形可视化和算法开发等领域。

在MATLAB中,数值运算和符号运算是两个核心概念,它们分别在不同的领域中发挥着重要作用。

本文将从数值运算和符号运算两个方面展开讨论,带您深入探索MATLAB的应用价值。

一、数值运算1. MATLAB中的数值数据类型在MATLAB中,常见的数值数据类型包括整数、浮点数和复数等。

它们在科学计算中有着广泛的应用,例如在矩阵运算、微分方程求解和优化算法中。

2. 数值计算函数的应用MATLAB提供了丰富的数值计算函数,包括线性代数运算、插值和拟合、统计分布和随机数生成等。

这些函数为科学计算提供了强大的支持,使得复杂的数值计算变得更加简单高效。

3. 数值方法在实际问题中的应用通过具体的案例,我们可以深入了解MATLAB在实际问题中的数值计算方法。

通过有限元分析解决结构力学问题、通过数值积分求解物理方程、通过数值微分求解工程问题等。

二、符号运算1. MATLAB中的符号计算工具MATLAB提供了符号计算工具包,可以进行符号变量的定义、代数运算、微分积分和方程求解等。

这为数学建模、符号推导和精确计算提供了强大的支持。

2. 符号计算函数的应用通过具体的例子,我们可以深入了解MATLAB中符号计算函数的应用。

利用符号计算求解微分方程、利用符号变量定义复杂的代数表达式等。

3. 符号计算在科学研究中的应用通过详细的案例,我们可以了解符号计算在科学研究中的应用。

利用符号计算推导物理模型、利用符号运算求解工程问题等。

总结与展望:通过本文的深度探讨,我们对MATLAB中的数值运算和符号运算有了全面的了解。

数值运算为我们提供了高效的数值计算工具,而符号运算则为我们提供了精确的符号计算工具。

这两者相辅相成,在不同的领域中发挥着重要的作用。

希望通过本文的阐述,读者可以更加深入地理解MATLAB中数值运算和符号运算的应用,提升科学计算的能力和水平。

MATLAB数值计算功能(向量、矩阵、数组、稀疏矩阵)

MATLAB数值计算功能(向量、矩阵、数组、稀疏矩阵)

数值计算功能向量及其运算1、向量生成(1)、直接输入向量元素用“[ ]”括起来,用空格或逗号生成行向量,用分号生成列向量a1=[11 14 17 18]a2=[11,14,17,18]a2=[11;14;17;18] %列向量用“’”可以进行向量转置a1=[11 14 17 18]a4=a1' %a1行向量,a4列向量也可以用组合方法:A=[1 2 3];B=[7 8 9];C=[A 4 ones(1,2) B](2)、等差元素向量生成冒号生成法:Vec=Vec0:n:Vecn,其中Vec表示生成的向量,Vec0表示第一个元素,n表示步长,Vecn表示最后一个元素使用linespace函数:Vec=linespace(Vec0,n,Vecn),其中Vec表示生成的向量,Vec0表示第一个元素,n表示生成向量元素个数(默认n=100),Vecn表示最后一个元素vec1=10:5:50vec2=50:-5:10vec3=linspace(10,50,6)2、向量的基本运算(1)、向量与数的四则运算向量中每个元素与数的加减乘除运算(除法运算时,向量只能作为被除数,数只能作为除数)vec1=linspace(10,50,6)vec1+100vec2=logspace(0,10,6) %对数等分向量vec2/100(2)、向量与向量之间的加减运算向量中的每个元素与另一个向量中相对应的元素的加减运算vec1=linspace(10,50,6)vec2=logspace(0,2,6)vec3=vec1+vec2(3)、点积、叉积和混合机点积:dot函数,注意向量维数的一致性x1=[11 22 33 44]x2=[1 2 3 4]a=dot(x1,x2)sum(x1.*x2) %还可以采用sum函数计算向量的点积叉积:cross函数,注意向量维数的一致性(由几何意义可知,向量维数只能为3)x1=[11 22 33 44]x2=[1 2 3 4]x3=cross(x1,x2) %报错,维数只能为3x1=[11 22 33]x2=[1 2 3]x3=cross(x1,x2)混合积:结果为一个数,先求cross,再求dota=[1 2 3]b=[2 4 3]c=[5 2 1]v=dot(a,cross(b,c))v=cross(a,dot(b,c)) %报错矩阵及其运算MATLAB的基本单位是矩阵,逗号或空格区分同一行不同元素,分号区分不同行1、矩阵的生成4种方法:在command window直接输入;通过语句和函数产生;M文件中建立;外部数据文件中导入(1)、直接输入:把矩阵元素直接排列到方括号中,每行元素用逗号或空格相隔,行与行之间用分号相隔martix=[1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4]冒号用法:A=[1 1 1;1 2 3;1 3 6]B=A(1:2,:)(2)文件导入:*.mat*.txt*.datload 文件名参数直接导入:File—Import Data2、矩阵的基本数值运算(1)、矩阵与是常数的四则运算(除法时,常数只能作为除数)matrix=[1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4]m1=100+matrixm2=100-matrixm3=100*matrixm4=matrix/2(2)、矩阵之间的四则运算加减法:矩阵各个元素之间的加减法,必须是同型矩阵matrix=[1 1 1 1;2,2,2,2;3,3,3,3;4 4 4 4]m1=20*matrixm2=m1+matrixm3=[11 22 33;1 2 3;4 5 6]m4=matrix-m1m5=m3+m1 %报错,非同型矩阵乘法:用*,左矩阵的列数需等于右矩阵的行数A=[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4]B=[1 5 9 2;6 3 5 7;2 5 8 9;4 5 6 3]C=A*BD=[1 5 9;6 3 5;2 5 8]E=A*D % 报错,4*4矩阵不能与3*3矩阵相乘除法:左除\(AX=B则X=A\B,相当于X=inv(A)*B,但是左除稳定性好)右除/(XA=B则X=B/A,相当于X=B*inv(A))个人认为:左除相当于逆矩阵左乘,右除相当于逆矩阵右乘%解方程组XA=B的解,本列中A=[2 1 -1; 2 1 0;1 -1 1] ;B=[1 -1 3;4 3 2] A=[2 1 -1; 2 1 0;1 -1 1]B=[1 -1 3;4 3 2]X=B/A矩阵可以使用比较运算符:结果矩阵的对应位置为0或1数据变换:floorceilroundfixrem[n,d]=rat(A):A表示为两个整数阵对应元素相除的形式A=n./d3、矩阵的特征参数运算(1)、乘方与开方乘方:A^p计算A的p次方p>0:A的p次方p<0:A逆矩阵的abs(p)次方A=[1 2 3 4;4 5 6 7;4 5 6 7;8 9 10 11]B=A^10开方:若有X*X=A,则有sqrtm(A)=XA=magic(5)B=sqrtm(A)B^2 %验证正确性(2)、指数与对数指数:expm(X)=V*diag(exp(diag(D)))/V([V,D]=eig(X))对数:L=logm(A),与指数运算互逆X=rand(4)Y=expm(X)A=randn(4)B=logm(A)(3)、逆运算inv函数,充要条件:矩阵的行列式不为0A=[1 0 0 0;1 2 0 0;2 1 3 0;1 2 1 4]B=inv(A)广义逆矩阵(伪逆):pinv(A)非奇异矩阵的pinv与inv相同(4)、行列式det函数A=[1 0 0 0;1 2 0 0;2 1 3 0;1 2 1 4]B=inv(A)x=det(A)y=det(B)i=x*y(5)、特征值E=eig(X):生成由X的特征值组成的列向量[V,D]=eig(X):V是以X的特征向量为列向量的矩阵,D是由矩阵X的特征值构成的对角阵D=eigs(X):生成由X的特征值组成的列向量(eigs函数使用迭代法求解矩阵的特征值和特征向量,X必须是方阵,最好是大型稀疏矩阵)[V,D]=eig(X):V是以X的特征向量为列向量的矩阵,D是由矩阵X的特征值构成的对角阵X=magic(3)A=[1 0 0;0 0 3;0 9 0]E=eig(X)[V D]=eig(X)D=eigs(A)[V D]=eigs(A)(6)、矩阵(向量)的范数norm(X):2-范数norm(X,2):2-范数norm(X,1):1-范数norm(X,inf):无穷范数norm(X,’fro’):Frobenius范数normest(X):只能计算2-范数,并且是2-范数的估计值,用于计算norm(X)比较费时的情况X=hilb(4)norm(4)norm(X)norm(X,2)norm(X,1)norm(X,inf)norm(X,'fro')normest(X)(7)、矩阵的条件数运算矩阵的条件数是判断矩阵“病态”成都的一个度量,矩阵A的条件数越大,表明A越病态,反之,表明A越良态,Hilbert矩阵就是有名的病态矩阵cond(X):返回关于矩阵X的2-范数的条件数cond(X,P):关于矩阵X的P-范数的条件数(P为1、2、inf或’fro’)rcond(X):计算矩阵条件数的倒数值,该值越接近0就越病态,越接近1就越良态condest(X):计算关于矩阵X的1-范数的条件数的估计值M=magic(3);H=hilb(4);c1=cond(M)c2=cond(M,1)c3=rcond(M)c4=condest(M)h1=cond(H)h2=cond(H,inf)h3=rcond(H)h4=condest(H)由以上结果可以看出,魔术矩阵比较良态,Hilbert矩阵是病态的(8)、秩rank函数T=rand(6)rank(T) %6,满秩矩阵T1=[1 1 1;2 2 3]r=rank(T1) %r=2,行满秩矩阵(9)、迹trace函数,主对角线上所有元素的和,也是特征值之和M=magic(5)T=trace(M)T1=eig(M)T2=sum(T1)4、矩阵的分解运算(1)、三角分解(lu)非奇异矩阵A(n*n),如果其顺序主子式均不为0,则存在唯一的单位下三角L和上三角阵U,从而使得A=LU[L,U]=lu(X):产生一个上三角矩阵U和一个下三角矩阵L,使得X=LU,X可以不为方阵[L,U,P]=lu(X):产生一个单位下三角矩阵L、一个上三角矩阵U和交换矩阵P,PX=LUY=lu(X):如果X是满矩阵,将产生一个lapack’s的dgetrf和zgetrf的输出常式矩阵Y;如果X 是稀疏矩阵,产生的矩阵Y将包含严格的下三角矩阵L和上三角矩阵U,这两种情况下,都不会有交换矩阵PX=[6 2 1 -1;2 4 1 0;1 1 4 -1;-1 0 -1 3][L U]=lu(X)[L U P]=lu(X)Y=lu(X)(2)、正交分解(qr)对于矩阵A(n*n),如果A非奇异,则存在正交矩阵Q和上三角矩阵R,使得A满足关系式A=QR,并且当R的对角元都为正时,QR分解是唯一的[Q,R]=qr(A):产生一个与A维数相同的上三角矩阵R和一个正交矩阵Q,使得满足A=QR [Q,R,E]=qr(A):产生一个交换矩阵E、一个上三角矩阵R和正交阵Q,这三者满足AE=QR [Q,R]=qr(A,0):对矩阵A进行有选择的QR分解,当矩阵A为m*n且m>n,那么只会产生具有前n列的正交矩阵QR=qr(A):只产生矩阵R,并且满足R=chol(A’*A)A=[17 3 4;3 1 12;4 12 8][Q R]=qr(A)[Q R E]=qr(A)[Q R]=qr(A,0)R=qr(A)[Q,R]=qrdelete(A,j):去除第j列求QR分解[Q,R]=qrdelete(A,j,x):在第j列插入x后求QR分解(3)、特征值分解(eig)[V,D]=eig(X):V是以矩阵X的特征向量作为列向量构成的矩阵,D是矩阵X的特征值构成的对角阵,满足XV=VD[V,D]=eig(A,B):对矩阵A、B做广义特征值分解,使得AV=BVDA=magic(4)[V D]=eig(A)Z=A*V-V*DB=[17 3 4 2;3 1 12 6;4 12 8 7;1 2 3 4][V D]=eig(A,B)Z=A*V-B*V*D(4)、Chollesky分解(chol)当矩阵A(n*n)对称正定时,则存在唯一的对角元素为正的上三角矩阵R,使得A=R’*R,当限定R的对角元素为正的时候,该分解是唯一的当矩阵A为非正定阵时,会提示出错A=[4 -1 1;-1 4.25 2.75;1 2.75 3.5]R=chol(A)R'*R %=AA=[0 4 0;3 0 1;0 1 3]R=chol(A) %报错,A为非正定阵(5)奇异值分解(svd)[U,S,V]=svd(X):与矩阵X维数相同的对角阵S、正交矩阵U和正交矩阵V,使得满足X=USV’[U,S,V]=svd(X,0):X为M*N矩阵,当M>N时,生成的矩阵U只有前N列元素被计算出来,并且S为N*N矩阵X=[1 2 3;4 5 6;7 8 9][U S V]=svd(X)X=[1 2 3;4 5 6;7 8 9;10 11 12][U S V]=svd(X)X=[1 2 3;4 5 6;7 8 9;10 11 12ckl[U S V]=svd(X,0)Schur分解(正交阵和schur阵)[U,T]=schur(A):A=UTU’schur阵是主对角线元素为特征值的三角阵5、矩阵的一些特殊处理size(A):求矩阵A的行数、列数diag(A):求出矩阵A的对角元素repmat(A):将矩阵A作为单位,赋值成m*n矩阵,其中每个元素都是A矩阵cat(k,A,B):k=1合并后形如[A;B](A,B列数相等);k=1合并后形如[A,B](A,B行数相等)(1)、矩阵的变维reshape(X,M,N):将矩阵X的所有元素分配到一个M*N的新矩阵,当矩阵X的元素不是M*N 时,返回错误reshape(X,M,N,P,...):返回由矩阵X的元素组成的M*N*P*...多维矩阵,若果M*N*P* (X)元素数不同时,将返回错误reshape(X,[M,N,P,…]):与上一条相同A=rand(4,2)reshape(A,2,4)reshape(A,[2,2,2])用冒号变维:A=[1 2 3 4;5 6 7 8;9 10 11 12];B=ones(2,6);B(:)=A(:)(2)、矩阵的变向rot90(A):A按逆时针旋转90度rot90(A,K):A按逆时针旋转90*K度filpud(X):将X上下翻转fliplr(X):将X左右翻转flipdim(X,DIM):将X的第DIM维翻转X=[1 4;2 5;3 6]rot90(X)rot90(X,-1)flipud(X)fliplr(X)flipdim(X,2) %左右翻转6、特殊矩阵的生成(1)、零矩阵和全1矩阵的生成A=zeros(M,N):生成M*N的零矩阵A=zeros(size(B)):生成与B同型的零矩阵A=zeros(N):生成N阶零矩阵仿真全1矩阵的生成与零矩阵的生成类似,使用ones函数A=zeros(4,5)B=[1 2 3 4 5;2 3 4 5 6;9 8 7 6 5;8 7 6 5 4]A=zeros(size(B))A=zeros(5)C=ones(5,6)C=ones(3)(2)、对角矩阵的生成A=diag(V,K):V为某个向量,K为向量V偏离主对角线的列数,K=0表示V为主对角线,K>00表示V在主对角线以上,K<0表示V在主对角线以下A=diag(V):相当于K=0v=[1 9 8 1 6]diag(v,1)diag(v)(3)、随机矩阵的生成rand(N):生成N*N的随机矩阵,元素值在(0.0,1.0)之间rand(M,N)randn(N):生成N*N的随机矩阵,元素之服从正态分布N(0,1)randn(M,N)rand(5)randn(5)(4)、范德蒙德矩阵的生成A=vander(V):有A(I,j)=v(i)n-jv=[1 3 5 7 9]A=vander(v)(5)、魔术矩阵的生成它是一个方阵,方阵的每一行,每一列以及每条主对角线的元素之和都相同(2阶方阵除外)magic(N):生成N阶魔术矩阵,使得矩阵的每一行,每一列以及每条主对角线元素和相等,N>0(N=2除外)magic(2)magic(3)magic(4)(6)、Hilbert矩阵和反Hilbert矩阵的生成Hilbert矩阵的第i行、第j列的元素值为1/(i+j-1),反Hilbert矩阵是Hilbert矩阵的逆矩阵hilb(N):生成N阶的Hilbert矩阵invhilb(N):生成N阶的反Hilbert矩阵A=hilb(5)B=invhilb(5)C=A*Brandpem(n):随机排列hess(A):hess矩阵pascal(n):Pascal矩阵hankel(c):Hankel矩阵wilkinson(n):wilkinson特征值测试矩阵blkdiag(a,b,c,d):产生以输入元素为对角线元素的矩阵注:diag函数的输入参数只能有一个(可以为向量)compan(u):友矩阵hadamard(n):hadamard矩阵toeplitz(c,r):托布列兹阵数组及其运算1、数组寻址和排序(1)、数组的寻址A=randn(1,10)A(4) %访问A的第4个元素A(2:6) %访问A的第2到6个元素A(6:-2:1)A([1 3 7 4]) %访问A中1、3、7和4号元素A(4:end) %end参数表示数组的结尾(2)、数组的排序sort(X):将数组X中的元素按升序排序X是多维数组时,sort(X)命令将X中的各列元素按升序排序X是复数时,sort(X)命令将X中的各个元素的模abs(X)按升序排序X是一个字符型单元数组,sort(X)命令将X中的各列元素按ASCII码升序排序Y=sort(X,DIM,MODE):DIM选择用于排列的维,MODE决定了排序的方式(’ascend’升序,’descend’降序),该命令生成的数组Y与X是同型的X=[3 7 5;0 4 2]sort(X,1) %纵向升序排序sort(X,2) %横向升序排序sort(2)2、数组的基本数值运算(1)、加减法(与矩阵加减法相同)X=[1 4 7]Y=[2 5 8]Z=X-YV=X+Y(2)、数组的乘除法乘法用“.*”:X、Y有相同维数,X.*Y表示X和Y中单个元素之间的对应乘积除法用“./”:注意“./”和“.\”完全不同X=[10 52 96 12 56]Y=[2 26 3 4 8]Z=[10 52 96 12 56 42]Z1=X.*YZ2=X.*Z %报错,维数问题Z3=X./Y %Z3=5,2,32,3,7Z4=X.\Y %Z4=0.2,0.5,0.0313,0.3333,0.1429Z5=X.\Z %报错,维数问题(3)、数组的乘方两个数组之间的乘方X=[1 4 7]Y=[2 5 8]Z=X.^Y乘方运算时指数为标量X=[3 6 9]Z=X.^3乘方运算时底数为标量X=[4 5 6 7 8 9]Z=3.^X数组和矩阵也可以进行exp、log、sqrt等运算,是对每个对应元素进行运算3、数组的关系运算小于(<),小于等于(<=),大于(>),大于等于(>=),等于(==),不等于(~=),结果为1,则关系式为真,结果为0,则关系式为假%rem(X,n),求余函数,X为被除数,n为除数M=magic(7)N=(rem(M,3))N=(rem(M,3)<=1)N=(rem(M,3)==1)N=(rem(M,3)>=1)4、数组的逻辑运算与(&),或(|),非(~),其中与、或可以比较两个标量或者两个同阶数组(或矩阵),非运算时针对数组(或矩阵中的每一个元素),当逻辑为真则返回1,当逻辑为假则返回0M=[1 1 0;0 1 0;1 0 0]N=[1 0 1;1 1 1;0 0 0]M|NM&N~Ncat:串接flipdimfliplrflipudkron:积数组permute:重组repmatreshaperot90稀疏型矩阵1、稀疏矩阵的生成(1)、speye函数:生成单位稀疏矩阵speye(size(A))speye(M,N):维数为M和N中较小的一个speye(N)A=eye(10)speye(size(A))speye(7,6)speye(5)(2)、sprand函数:生成随机稀疏矩阵(元素服从0-1之间的随机分布)R=sprand(S):产生与稀疏矩阵S结构相同的稀疏矩阵,但它的元素都是0-1上的随机数Rsprand(M,N,D):产生一个M*N的随机稀疏矩阵R,它的非您元素的个数近似为M*N*D,注意D的值在0-1之间且不要过大v=[3 5 6 2 1 9 6 5 5 6]S=diag(v)R=sprand(S)R=sprand(10,10,0.08)(3)、sparse函数S=sparse(X):将矩阵X转化为稀疏矩阵SS=sparse(I,j,s,m,n,nzm):生成m*n的稀疏矩阵S,向量s的元素分布在以向量i的对应值和向量j的对应值为坐标的位置上,其中nzm=length(s)S=sparse(I,j,s):生成m*n的稀疏矩阵S,向量s的元素分布在以向量i的对应值和向量j的对应值为坐标的位置上,其中m=max(i),n=max(j)S=sparse(m,n):是sparse([],[],[],m,n,0)的简化形式i=[6 2 7 7 4 1 2 5]j=[1 3 2 7 2 8 3 2]s=[8 3 7 7 1 7 0 2]X=diag(s,-2)S=sparse(X)S1=sparse(i,j,s,10,10,7) %报错,nzmax=length(s)S1=sparse(i,j,s,10,10,8)S2=sparse(i,j,s,10,9) %默认nzmax=length(s)S2=sparse(i,j,s) %m=max(i),n=max(j)2、稀疏矩阵的操作(1)、nnz函数:用于求非零元素的个数nz=nnz(S):返回S总非零元素个数D=nnz(S)/prod(size(S)):表示稀疏矩阵S中非零元素的密度v=[6 2 7 7 4 1 3 5]S=diag(v,-1)nz=nnz(S)D=nnz(S)/prod(size(S))(2)、sponse函数R=sponse(S):生成一个与稀疏矩阵S结构相同的稀疏矩阵R,但是在矩阵S中的非零元素的位置上用元素1替换S=sprandsym(10,0.05)R=spones(S)(3)、spalloc函数S=spalloc(m,n,nzm):生成一个所有元素都为0的m*n阶稀疏矩阵,计算机利用这些空间来存储nzm个非零元素n=3;v=sprand(n,1,0.33) %生成3*1的稀疏列向量s=spalloc(n,n,1*n) %分配3*3的空间,最终可以存储3个非零元素for j=1:ns(:,j)=(v) %v为含有一个非零元素的稀疏列向量end(4)、full函数S=full(X):将稀疏矩阵(三元组表示)转换为满矩阵(矩阵表示)s(6,1)=8;s(4,2)=1;s(5,3)=60;s(6,2)=57;s(1,7)=25;s(3,8)=37;full(s)(5)、find函数I=find(X):返回矩阵X的非零元素的位置,如I=find(X>100) 返回X中大于100的元素的位置[I,J]=find(X):返回X中非零元素所在的行I和列J的具体数据[I,J,V]=find(X):除了返回I和J,还返回矩阵中非零元素的值V注:find(X)和find(X~=0)会产生同样的I和J,但是后者会生成一个包括所有非零元素位置的向量S(10,50)=82;S(32,14)=82;S(251,396)=25;I=find(S)[I J]=find(S)[I J V]=find(S)(6)、issparse函数issparse(S):返回值为1说明矩阵S是一个稀疏矩阵,返回值为0时说明矩阵S不为稀疏矩阵v=[6 2 7 7 4 1 3 5]S=diag(v,2)R=sparse(S)N=issparse(S) %返回0,不为稀疏矩阵Y=issparse(R) %返回1,为稀疏矩阵。

第二章matlab02数值运算功能1

第二章matlab02数值运算功能1

范 例 3.1416 3.1416e+000
3.14159265358979
format long
15 位数字表示
format long e
15位科学记数表示
format rat 分数近似 format bank 两位小数
3.1415926535897 93e+000 355/113 3.14
MATLAB命令 format hex format +
realmax-系统所能表示的最大正实数: 系统所能表示的最大正实数: 系统所能表示的最大正实数 1.797693134862316e+308 realmin-系统所能表示的最小正实数: 系统所能表示的最小正实数: 系统所能表示的最小正实数 2.225073858507201e-308
7.变量查询和清除函数(变量操作) 变量查询和清除函数(变量操作)
可用load指令调用已生成的 指令调用已生成的mat文件 可用 指令调用已生成的 文件
load data
load data a b
即可恢复保 存过的所有 变量
load filename variables的使用说明 的使用说明
• 将以前用 将以前用save命令保存的变量 命令保存的变量variables从磁 命令保存的变量 从磁 盘文件中调入MATLAB工作空间。 工作空间。 盘文件中调入 工作空间 • 用load 命令调入的变量,其名称为用 命令调入的变量,其名称为用save命 命 令保存时的名称,取值也一样。 令保存时的名称,取值也一样。 • Variables所表示的变量列表中,不能用逗 所表示的变量列表中, 所表示的变量列表中 号,各个不同的变量之间只能用空格来分隔。 各个不同的变量之间只能用空格来分隔。 空格来分隔 • 未列出 未列出variables时,表示将磁盘文件中的 时 所有变量都调入工作空间。 所有变量都调入工作空间。

第二章 Matlab软件的数值计算方法2

第二章 Matlab软件的数值计算方法2

3)三角函数、双曲函数及它们的反函数 )三角函数、 只用于数值计算外, 除atan2只用于数值计算外,其余的三角函数(如sin)、 只用于数值计算外 其余的三角函数( )、 双曲函数( 双曲函数(如cosh)以及它们的反函数(如asin, acosh) )以及它们的反函数( ) 在数值计算和符号计算中使用方法都相同。 在数值计算和符号计算中使用方法都相同。 4)指数、对数函数 )指数、 数值、符号计算中,函数sqrt, exp, expm的使用方法 数值、符号计算中,函数 的使用方法 完全相同,至于对数函数,符号计算中只有自然对数log, 完全相同,至于对数函数,符号计算中只有自然对数log, 而没有数值计算中的log2, log10。 而没有数值计算中的 。 5) 复数函数 ) conj, real, imag, abs相同,但无求相角的指令。 相同, 相同 但无求相角的指令。 6) 矩阵代数指令 ) diag, triu, tril, inv, det, rank, rref, null, colspace, poly, expm, eig基本与数值计算相同,只有 基本与数值计算相同, 稍微不同。 基本与数值计算相同 只有svd稍微不同。 稍微不同
1.3 符号表达式中自由变量的确定 findsym可实现对表达式中所有自由符号变量或指定数 可实现对表达式中所有自由符号变量或指定数 目的独立自变量的自动认定。 目的独立自变量的自动认定。 findsym(expr) findsym(expr,n) 【例7】对独立自由符号变量的自动辨认。 】对独立自由符号变量的自动辨认。 syms a b x X Y; k=sym('3'); z=sym('c*sqrt(delta)+y*sin(theta)'); EXPR=a*z*X+(b*x^2+k)*Y; findsym(EXPR)

第二章matlab02数值运算功能2

第二章matlab02数值运算功能2
a*b ans = 25 55 85 a.*b 37 85 133 46 109 172 ans = 2 4 49 8 15 72 18 3应元素间的商 给出a,b对应元素间的商 对应元素间的商. a.\b=b./a a./b=b.\a — 都是 的元素除以 的对应元素 都是a的元素除以 的元素除以b的对应元素 a.\b=b./a — 都是 的元素除以 的对应元素 都是b的元素除以 的元素除以a的对应元素
2.4.3矩阵的关系和逻辑运算 矩阵的关系和逻辑运算
1.矩阵的关系运算符:<, >, <=, >=, = =, ~= 矩阵的关系运算符: 矩阵的关系运算符 • 矩阵之间的每个元素进行比较,运算结果 矩阵之间的每个元素进行比较, 为与原矩阵大小一样的由0 为与原矩阵大小一样的由0和1组成的矩阵 注意:1=<a<=2错误 注意: 错误 例: 1<=a<=2正确 = 正确
• •
§2.4 矩阵的运算
矩阵的数学运算 矩阵的点(数组 运算 矩阵的点 数组)运算 数组 矩阵的关系和逻辑运算
2.4.1矩阵的数学运算 矩阵的数学运算
矩阵运算符 含义 A’ 矩阵转置 A+B 矩阵相加 A-B 矩阵相减 A*B 矩阵相乘 A/B 矩阵相除(右除) 矩阵相除(右除) B\A 矩阵相除(左除) 矩阵相除(左除) A^n A阵的 n次幂 阵的 次幂
x X = y z
10 B = 5 −1
要解上述的联立方程式, 要解上述的联立方程式,可利用矩阵左除 \ 做运 时要求A、 的行数相等 相等。 算,即:X=A\B, 左除时要求 、B的行数相等。 , 左除时要求
如果将原方程式改写成 X*A=B,且令 X, A 和 B , 分别为

第2章 MATLAB数据及其运算.

第2章 MATLAB数据及其运算.

8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5

复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。

1.Matlab数值运算功能

1.Matlab数值运算功能
Matlab与科学计算
向量的乘除运算
a. 向量的乘法运算
点乘运算的运算符为 .*, 其意义为两个向量的对应 元素进行乘法运算,例如
a=[1 2], b=[3 4] 则c=a.*b=[3 8]
^ 为向量的乘方运算,例如
c=a.^2=[1 4]
b. 向量的除法运算
Matlab与科学计算
点积、叉积和混合积
X = inv(E) X= -2.0000 1.0000 1.5000 -0.5000 (8)矩阵元素的赋值与运算
Matlab允许用户对矩阵的单个元素进行赋值和操作,Matlab 此时命 令方式为 X(i,j)=变量名
Matlab与科学计算
( 9)矩阵的指数和对数运算 expm(a), expm1(a), expm2(a), expm3(a) logm(a) ( 10)矩阵的开方运算 sqrtm(m) 注意:以上函数如果去掉最后的‘m’,都变成只对 矩阵中的每个元素进行相应的运算。 ( 11)矩阵的行列式运算: a1=det(a)
在matlab的命令窗口键入以下字符 >> a = [1 2 3 4 5 6 9 8 7] a= 1 2 3 4 5 6 9 8 7
希望得到元素从0到20,步距为2的一个向量,只需键入以下命令即可
>> t = [0:2:20] t= 2 4 6 8 10 12 14 16 18 20
Matlab与科学计算
》x=258×369 x= 95202
Matlab与科学计算
变量
(1)变量的命名:变量的名字必须以字母开头(不超 过19个字符),之后可以是字母、数字或下划线;变 量名区分字母的大小写;变量中不能包含有标点符号。 (2)一些特殊的变量 ans:用于结果的缺省变量名 i、j:虚数单位 pi:圆周率 eps:计算机的最小数(相对精度) inf:无穷大 realmin:最小正实数 realmax:最大正实数 nan:不定量(not a number) (3)变量操作

第 2 章 matlab数值计算第一次课

第 2 章 matlab数值计算第一次课

河南理工大学测绘学院
§2.1 特殊矩阵的生成
eye函数的调用格式: ●eye(n) %生成n × n阶单位矩阵 ● eye(m,n) 或eye([m,n]) %生成m× n阶单位阵 ● eye(size(A)) %生成与A同阶的单位阵 ones函数的调用格式: ●ones(m):产生m × m阶的全1矩阵。 ●ones(m,n)或zeros([m,n]) :产生m × n全1矩阵。当 m = n时,等同于zeros(m)。 ● zeros(m,n,p,…): 生成m × n ×p ×…阶的全1阵或 数组。
MATLAB提供了求魔方矩阵的函数magic(n),其
功能是生成一个n阶魔方阵。
河南理工大学测绘学院
§2.1 特殊矩阵的生成
【例2.3】将101~125等25个数填入一个5行5列的表格中, 使其每行、每列及对角线的和均为565。
一个5阶魔方矩阵的每行、每列及对角线的和均为65, 对其每个元素都加100后这些和变为565。完成其功能的命 令如下: M=100+magic(5)
rand(‘state’,J) %对整数J,重置生成器到第J个状态 rand(‘state’,sum(100*lock))%每次重置到不同状态 注:randn函数的调用格式同rand
河南理工大学测绘学院
§2.1 特殊矩阵的生成
【例2.2】建立随机矩阵: (1)在区间[10, 30]内均匀分布的4阶随机矩阵。 (2)均值为0.6、方差为0.1的4阶正态分布随机矩阵。 产生(0,1)区间均匀分布随机矩阵使用rand函数,假 设得到了一组满足(0,1)区间均匀分布的随机数xi,则 若想得到在任意[a, b]区间上均匀分布的随机数,只需 用yi = a + (b − a)xi计算即可。产生均值为0、方差 为1的标准正态分布随机矩阵使用randn函数,假设已经 得到了一组标准正态分布随机数xi,如果想更一般地得 到均值为μ 、方差为σ 2的随机数,可yi = μ + σ xi 计算出来。

数学实验 第2章 MATLAB数值运算

数学实验 第2章 MATLAB数值运算




数学实验

例2.5 向量的点积和叉积运算.
>> A = [4 -2 1];
>> B = [1 -1 3];
>> C=dot(A,B)
%向量A和B的点积
C=
9
>> D = cross(A,B) %向量A和B的叉积
D=
-5 -11 -2


澡身浴德 修业及时
澡身浴德 修业及时
2.2 矩阵及其运算
① x(n)
表示向量中的第n个元素
② x(n1:n2)
表示向量中的第n1至n2个元素
例2.3 向量元素的引用、修改和扩展.
>> x=1:2:5
x=
1
3
5


数学实验

>> x(2)=6
%修改第2个元素为6
x=
1
6

>> x(5)=7
%增加第5个分量,第4个分量没有赋值,自动设为0
x=
1
6
5
0
7
>> x([1,end])
2
.
= ( , , . . . , )

1 2

.
.

叫做 n 维向量,向量的第 i 个分量称为 .


数学实验

2.1.1 向量的创建
MATLAB中向量可以由以下方法创建:
(1)元素输入法
在命令行窗口中直接输入,向量元素用“[ ]”括起来,元素之间用空格、逗号或分
号分隔.用空格和逗号分隔生成行向量,用分号分隔生成列向量.

第2章 MATLAB数值计算

第2章  MATLAB数值计算

第2章 MATLAB数值计算MATLAB的数学计算=数值计算+符号计算其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。

2.1 变量和数据2.1.1数据类型数据类型包括:数值型、字符串型、元胞型、结构型等数值型=双精度型、单精度型和整数类整数类=无符号类(uint8、uint16、uint32、uint64)和符号类整数(int8、int16、int32、int64)。

2.1.2数据1. 数据的表达方式▪可以用带小数点的形式直接表示▪用科学计数法▪数值的表示范围是10-309~10309。

以下都是合法的数据表示:-2、5.67、2.56e-56(表示2.56×10-56)、4.68e204(表示4.68×10204)2. 矩阵和数组的概念在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下:▪标量:是指1×1的矩阵,即为只含一个数的矩阵。

▪向量:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。

▪矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。

▪数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。

3. 复数复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。

复数运算不需要特殊处理,可以直接进行。

复数可以有几种表示:z=a+b*i或z=a+b*jz=a+bi 或z=a+bj(当b 为标量时) z=r*exp(i*theta)● 得出一个复数的实部、虚部、幅值和相角。

a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角 说明:复数z 的实部a=r*cos(θ); 复数z 的虚部b=r*sin(θ); 复数z 的幅值22b a r +=;复数z 的相角theta=arctg(b/a),以弧度为单位。

2 matlab的数值运算

2 matlab的数值运算

下次运行matlab时即可用load指
令调用已生成的mat文件。

load —— load data —— load data a b ——
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件,
还可以ASCII码形式保存。
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则:
相加、减的两矩阵必须有相同的行和 列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。 标量与矩阵的所有元素分别进行加 减操作。
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
3.conv,convs多项式乘运算
例: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.00 p=poly2str(c,'x') p = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18
直接修改 可用键找到所要修改的矩阵,用键 移动到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。

二.数值数组及其运算(matlab)

二.数值数组及其运算(matlab)

例2.2 基本数据类型
clear v=2000; v_s=size(v); n='green'; n_s=size(n); house={v;n} %1*1数值数组 %数值数组的大小 %字符串数组 %字符串数组的大小 %元胞数组
演示
2.1.1 一维数组的创建

逐个元素生成法 冒号生成法
通用格式为:x=a : inc : b 冒号不能省,且必须在英文状态下输入; 步长inc可取正数或负数,缺省时默认值为1。
2.2 二维数组的创建和寻访
二维数组结构和矩阵相同,当带线 性变换的含义时,数组就是矩阵。
例2.5 二维数组的基本操作
A = [ 1 2 3 ; 4 , 5 , 6 ]; %输入二维数组A B = [ 1 2 4 ; 8 16 32 ]; %输入二维数组B %C = A + B %二维数组C的元素等于A、B对应元素的和 %D = log2 ( B ) %对B的每个元素求以 2 为底的对数构成数 %组D
A = [ 1 4 7 ; 2 5 8 ; 3 6 9 ];
a5=A([1 3;2 6]) %取单下标为1、3、2、6的元素构成子数组 %a5(2×2) %a6=A([1 3 2 6]) %取单下标为1、3、2、6的元素构成子数组 %a6 (1×4) %L1=logical([1 0 1])
演示
2.2.3 二维数组子数组的寻访和赋值(续)

2.1一维数组的创建和寻访

数学计算是MATLAB强大计算功能的体现。MATLAB的数学 计算分为数值计算和符号计算,其中符号计算是指使用 未定义的符号变量进行运算,而数值计算不允许使用未 定义的变量。 数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。

第二章 MATLAB基础知识

第二章 MATLAB基础知识

2.2 数组及其运算
例 ascii_a=double(a) %将字符转换为相应的双精度值 ascii_a = Columns 1 through 13 84 104 105 115 32 105 115 32 97 110 32 101 120 Columns 14 through 19 97 109 112 108 101 46 例 char(ascii_a) %将双精度值转换为字符 ans = This is an example. 例 w=find(a>=‘a’&a<=‘z’); %查找所有小写字母的位置 ascii_a(w)=ascii_a(w)-32; %将小写字母ascii值转换为大写 char(ascii_a) %将双精度值转换为字符 ans = THIS IS AN EXAMPLE.
2.2 数组及其运算
2.2.2 数组的运算
运算 加 运算符 + 表达式 a+b
减 乘 除 幂 点乘 点除 点幂
*
/或\ ^ .* ./或.\ .^
a-b a*b
a/b或a\b a^b a .* b a ./ b或a.\b a.^b
2.2 数组及其运算
例 a=3 14 7 1 4 9 3 6 10 b=2 8 3 2 10 0 11 2 7 a+b ans= 5 22 10 3 14 9 14 8 17
2.2 数组及其运算
高维数组的创建
直接通过“全下标”元素赋值方式创建高维数组; 由若干个同样大小的低维数组组合成高维数组; 由函数ones、zeros、rand、randn直接创建标准
高维数组;
借助cat、repmat、reshape等函数构造高维数组。
Am

matlab的数值运算

matlab的数值运算

matlab的数值运算当使用MATLAB 进行数值运算时,可以使用各种内置函数和运算符进行计算。

下面是一些常见的数值运算操作的详细说明:基本数学运算:加法:使用"+" 运算符进行两个数的相加。

例如,计算2 和3 的和:2 + 3。

减法:使用"-" 运算符进行两个数的相减。

例如,计算5 减去2 的结果:5 - 2。

乘法:使用"*" 运算符进行两个数的相乘。

例如,计算4 乘以3 的结果:4 * 3。

除法:使用"/" 运算符进行两个数的相除。

例如,计算10 除以2 的结果:10 / 2。

取余数:使用"mod" 函数或"%" 运算符计算两个数的余数。

例如,计算11 除以3 的余数:mod(11, 3) 或11 % 3。

幂运算:使用"^" 运算符进行幂运算。

例如,计算2 的3 次幂:2^3。

数学函数:MATLAB 提供了许多内置的数学函数,可以进行各种数值计算和分析操作。

这些函数包括但不限于:abs(x):返回x 的绝对值。

sin(x):返回x 的正弦值。

cos(x):返回x 的余弦值。

exp(x):返回e 的x 次幂,其中e 是自然对数的底数。

log(x):返回x 的自然对数。

sqrt(x):返回x 的平方根。

round(x):返回x 的四舍五入值。

floor(x):返回不大于x 的最大整数。

ceil(x):返回不小于x 的最小整数。

max(x, y):返回x 和y 中的较大值。

min(x, y):返回x 和y 中的较小值。

数组运算:MATLAB 中的数值计算通常涉及数组操作。

可以对向量、矩阵和多维数组执行各种运算,例如:矩阵相加:使用"+" 运算符对两个相同大小的矩阵进行元素级别的相加。

矩阵相乘:使用"" 运算符对两个矩阵进行乘法运算。

matlab的数值运算

matlab的数值运算

matlab的数值运算Matlab是一种强大的数值计算和科学计算软件,它提供了丰富的数值运算功能,包括基本的数学运算、矩阵运算、符号计算以及常见的数值方法等。

在本文中,我们将讨论一些常见的数值运算方法和函数,并介绍它们的使用方法。

1. 基本的数学运算在Matlab中,可以使用基本的算术运算符进行数学运算,例如加法(+)、减法(-)、乘法(*)、除法(/)等。

例如,可以使用以下代码计算两个数的和:```a = 3;b = 4;c = a + b;disp(c);```这将输出结果为7。

此外,Matlab还提供了许多数学函数,可以进行各种复杂的数学运算。

例如,可以使用`sin`函数计算一个角度的正弦值,如下所示:```angle = pi/6;sin_value = sin(angle);disp(sin_value);```这将输出结果为0.5,表示30度的正弦值为0.5。

2. 矩阵运算Matlab中的矩阵运算非常方便,可以对矩阵进行加法、减法、乘法、转置等操作。

例如,可以使用以下代码计算两个矩阵的乘法:```A = [1 2; 3 4];B = [5 6; 7 8];C = A * B;disp(C);```这将输出结果为:```19 2243 50```表示两个2x2矩阵的乘积。

此外,Matlab还提供了许多专门用于矩阵运算的函数,例如`inv`函数可以计算一个矩阵的逆矩阵,`eig`函数可以计算一个矩阵的特征值和特征向量等。

3. 符号计算Matlab还提供了符号计算的功能,可以进行代数运算、求解方程、微积分等。

通过使用符号变量,并调用Matlab中的符号计算函数,可以进行复杂的数值计算。

例如,以下代码演示了如何计算方程的解:```syms x;eqn = x^2 - 3*x + 2 == 0;sol = solve(eqn, x);disp(sol);```这将输出结果为2和1,表示方程的两个解分别为2和1。

MATLAB的数值运算

MATLAB的数值运算
➢ 对角矩阵:对角元素向量 V=[a1,a2,…,an] A=diag(V)
➢ A为方阵,V=diag(A)提取A的对角元素 构成向量V。
➢ 随机矩阵:rand(m,n) m×n的均匀分布
3.利用冒号表达式建立向量
e1: e2: e3
a=[1:2:10]
a=
初始值 :步长: 终止值
13579
linspace(a,b,n)
49
72
90
85 133 172
矩阵的点除
例: a=[1 2 3];b=[4 5 6]; c1=a.\b; c2=b./a c1 = 4.0000 2.5000 2.0000
c2 = 4.0000 2.5000 2.0000
a./b=b.\a —— 给出a,b对应元素间的商. a.\b=b./a a./b=b.\a — 都是a的元素被b的对应元素除 a.\b=b./a — 都是a的元素被b的对应元素除
第三节 多项式运算
一、多项式的建立与表示方法
多项式 → 一个行向量
元素按多项式降幂排列
f(x)=anxn+an-1xn-1+……+a0
p=[an an-1 …… a1 a0]
x4 12x3 0x2 25x 116 p=[1 -12 0 25 116]
roots 多项式等于0的根,列向量
polynomial 已知多项式等于0的根,求 出相应多项式
第二章 MATLAB的数值运算
第一节 基本语法结构
一、变量与赋值
1.变量
命名 字母+任意字母(数字、下划线) 规则 字母的大小写、标点符号
存储
变量操作 命令窗口
命令、变量值
调用

第二讲 MATLAB的数值计算 —— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位

第二讲 MATLAB的数值计算 ——  matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位
x= 2.00 3.00
x=a\b x= 2.00 3.00
2.超定方程组的解
方程 ax=b ,m<n时此时不存在唯一解。 方程解 (a ' a)x=a ' b
x=(a' a)-1 a ' b —— 求逆法 x=a\b —— matlab用最小二乘法找一
个准确地基本解。
例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3
特征多项式一定是n+1维的
特征多项式第一个元素一定是1
例:a=[1 2 3;4 5 6;7 8 0]; p=poly(a)
p =1.00 -6.00 -72.00 -27.00 p是多项式p(x)=x3-6x2-72x-27的
matlab描述方法,我们可用: p1=poly2str(p,‘x’) — 函数文件,显示 数学多项式的形式
matlab函数名必须小写。
3. 矩阵的修改
直接修改 可用键找到所要修改的矩阵,用键
移动到要修改的矩阵元素上即可修改。 指令修改
可以用A(,)= 来修改。
例如
a=[1 2 0;3 0 5;7 8 9]
a =1 2 0
305 789
还可以用函数subs
a(3,3)=0 a =1 2 0
p1 =x^3 - 6 x^2 - 72 x - 27
2.roots —— 求多项式的根
a=[1 2 3;4 5 6;7 8 0];p=poly(a) p=
1.00 -6.00 -72.00 -27.00 r=roots(p) r = 12.12
-5.73 ——显然 r是矩阵a的特征值 -0.39
用除法求的解x是具有最多零元素的 解 是具有最小长度或范数的解,这个 解是基于伪逆pinv求得的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档