《MATLAB语言与现代科学计算(还有整套课件大家可以参考我的).ppt》由会员分享,可在线阅读,更多相关《MATLAB语言与现代科学计算(还有整套课件大家可以参考我的).ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB程序语言设计程序语言设计余义斌余义斌五邑大学信息工程学院五邑大学信息工程学院第四讲第四讲 MATLAB语言与现语言与现代科学计算代科学计算4.1 数值线性代数问题数值线性代数问题4.2 数值微积分数值微积分4.3 统计分析统计分析4.4 数学问题的解析运算数学问题的解析运算4.5 数学问题的高精度运算数学问题的高精度运算4.1 数值线性代数问题数值线性代数问题一些一些 MATLAB 特殊矩阵特殊矩阵零矩阵:零矩阵:A=zeros(m,n);其中其中(m,n)定义零矩阵维数大小定义零矩阵维数大小全全1矩阵:矩阵:A=ones(m,n);其中其中(m,n)定义矩阵维数大小定义矩阵维数大
2、小单位矩阵:单位矩阵:A=eye(m,n);其中其中(m,n)定义零矩阵维数大小定义零矩阵维数大小随机元素矩阵:随机元素矩阵:A=rand(m,n);0,1上均匀分布上均匀分布 A=randn(m,n);正态分布正态分布对角矩阵:对角矩阵:A=diag(v);V 为对角向量为对角向量4.1 数值线性代数问题数值线性代数问题Hilbert 矩阵:矩阵:A=hilb(n);The elements of the Hilbert matrices are:H(i,j)=1/(i+j-1)伴随矩阵:伴随矩阵:A=compan(p);其中其中 p 为多项式系数向量为多项式系数向量 多项式多项式 对应的向
3、量为对应的向量为 p=1 2 7 6 9 8,它的伴随矩阵为,它的伴随矩阵为 compan(p)ans=-2 -7 -6 -9 -8 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 04.1 数值线性代数问题数值线性代数问题Hankel 矩阵:矩阵:A=hankel(c,r);A Hankel 矩阵是反对角线对称且为常数的矩阵,其分量是矩阵是反对角线对称且为常数的矩阵,其分量是 h(i,j)=p(i+j-1),向量向量p=c r(2:end)可以完全决定可以完全决定Hankel 矩阵矩阵.c=1:3;r=7:10;h=hankel(c,r)h=1 2 3 8 2 3
4、 8 9 3 8 9 10p=1 2 3 8 9 104.1 数值线性代数问题数值线性代数问题范德蒙德矩阵:范德蒙德矩阵:A=vander(c,r);A=vander(v)返回一个范德蒙德矩阵,其列向量是向返回一个范德蒙德矩阵,其列向量是向量量V的乘方,即的乘方,即 A(i,j)=v(i)(n-j),其中其中 n=length(v).c=1:5,v=vander(c)c=1 2 3 4 5v=1 1 1 1 1 16 8 4 2 1 81 27 9 3 1 256 64 16 4 1 625 125 25 5 14.1 数值线性代数问题数值线性代数问题矩阵行列式:矩阵行列式:det(A)矩阵的
5、迹:矩阵的迹:trace(A)(即对角线元素之和即对角线元素之和)矩阵的秩:矩阵的秩:rank(A)即线性无关的列数或行数即线性无关的列数或行数矩阵的特征多项式:矩阵的特征多项式:poly(A)即即 矩阵的特征根矩阵的特征根 roots(poly(A)4.1 数值线性代数问题数值线性代数问题矩阵的特征值与特征向量矩阵的特征值与特征向量V,D=eig(A)矩阵矩阵V的各列为特征向量,矩的各列为特征向量,矩阵阵D的对角元素为特征值的对角元素为特征值 a=1 2 3;4 5 6;7 8 0;v,d=eig(a)v=-0.2998 -0.7471 -0.2763 -0.7075 0.6582 -0.3
6、884 -0.6400 -0.0931 0.8791d=12.1229 0 0 0 -0.3884 0 0 0 -5.73454.1 数值线性代数问题数值线性代数问题矩阵求逆与线性方程求解矩阵求逆与线性方程求解B=inv(A)求矩阵求矩阵A的逆矩阵的逆矩阵 a=1 2 3;4 5 6;7 8 0;b=inv(a);c=a*b;d=b*a;b c dans=-1.7778 0.8889 -0.1111 1.0000 0 -0.0000 1.0000 0.0000 01.5556 -0.7778 0.2222 -0.0000 1.0000 0 -0.0000 1.0000 0-0.1111 0.2
7、222 -0.1111 0.0000 -0.0000 1.0000 0.0000 0.0000 1.00004.1 数值线性代数问题数值线性代数问题面向矩阵各个元素的函数面向矩阵各个元素的函数B=函数名函数名(A)用命令用命令 help elfun 可以查看这些命令列表,主要有可以查看这些命令列表,主要有sin sinh asin asinh cos cosh acos acosh tan tanh atan atan2 atanh sec sech asec asech csc csch acsc acsch cot coth acot acoth exp log log10 log2 po
8、w2 sqrt abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign4.1 数值线性代数问题数值线性代数问题对矩阵进行数值分析的函数对矩阵进行数值分析的函数 B=函数名函数名(A)用命令用命令 help datafun 可以查看这些命令列表,主要有可以查看这些命令列表,主要有max min mean median std var sort sortrows sum prod hist histc trapz cumsum cumprod cumtrapz diff gr
9、adient del2corrcoef cov subspacefilter filter2 conv conv2 convn deconv detrendfft fft2 fftn ifft ifft2 ifftn fftshift ifftshift4.2 数值微积分数值微积分数值差分运算数值差分运算 dy=diff(y)(按列运算)按列运算)y=magic(6)y=35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 diff(y)ans=-32
10、 31 1 -5 4 1 28 -23 -5 1 4 -5 -23 19 31 -5 -17 -5 22 -23 1 -5 4 1 -26 31 -5 1 4 -54.2 数值微积分数值微积分数值积分数值积分 y,n=quad(F,a,b,tol);y,n=quadl(F,a,b,tol);其中其中F为被积函数,为被积函数,a,b为积分上下限,为积分上下限,tol 为误差限为误差限y 为积分结果,为积分结果,n 为被积分函数的调用次数。为被积分函数的调用次数。tol 的缺省值对的缺省值对 quad 函数为函数为 1e-3quadl 函数使用的算法比函数使用的算法比 quad 高得多高得多4.2
11、 数值微积分数值微积分例子:求无穷定积分例子:求无穷定积分 f=inline(1/sqrt(2*pi)*exp(-x.2/2),x);y,kk=quad(f,-8,8)y=1.00000197533430kk=81 y,kk=quad(f,-15,15)y=0.99999920879563kk=89该无穷定积分的理论值为该无穷定积分的理论值为 14.2 数值微积分数值微积分例子:双重积分例子:双重积分用函数用函数 dblquad(F,xmin,xmax,ymin,ymax,tol)求双求双重积分重积分 f=inline(exp(-x.2/2).*sin(x.2+y),x,y);y=dblqua
12、d(f,-2,2,-1,1)y=1.574502594851694.3 统计分析统计分析数据统计分析数据统计分析x,i=max(X),或或 x,i=min(X)返回矩阵返回矩阵 X 各列的最大值或最小值,各列的最大值或最小值,i 为各列最大值为各列最大值或最小值所在位置的行号构成的向量或最小值所在位置的行号构成的向量x,i=sort(X)对矩阵对矩阵X各列排序各列排序 y=mean(X)求矩阵求矩阵X中各列向量的均值中各列向量的均值 y=std(X)求矩阵求矩阵X中各列向量的标准差中各列向量的标准差 y=median(X)求矩阵求矩阵X中各列向量的中间值中各列向量的中间值 y=cov(X)求协
13、方差求协方差 y=corrcoef(X)求相关系数矩阵求相关系数矩阵4.3 统计分析统计分析例子例子 s=randn(10000,5);M=mean(s),D=std(s),MD=median(s)M=0.0148 -0.0149 -0.0026 -0.0067 -0.0037D=0.9940 1.0024 1.0098 1.0044 1.0043MD=0.0250 -0.0104 0.0064 -0.0090 -0.0185 V=corrcoef(s)V=1.0000 0.0047 0.0100 0.0197 -0.0079 0.0047 1.0000 0.0219 -0.0062 0.00
14、09 0.0100 0.0219 1.0000 0.0021 0.0081 0.0197 -0.0062 0.0021 1.0000 -0.0028 -0.0079 0.0009 0.0081 -0.0028 1.00004.4 数学问题的解析运算数学问题的解析运算 MATLAB本身没有提供解析运算,即符号运算本身没有提供解析运算,即符号运算的能力,但借助于著名的符号运算软件的能力,但借助于著名的符号运算软件 MAPLE,MATLAB提供了一个符号运算工具箱,使得提供了一个符号运算工具箱,使得MATAB可以进行符号运算及进行高精度运算可以进行符号运算及进行高精度运算.syms 变量列表变量列表
15、 定义符号变量定义符号变量s=sym(A)从从A中定义符号对象中定义符号对象 s。观察下例观察下例 a=hilb(5),b=sym(hilb(5),whosa=1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111b=1,1/2,1/3,1/4,1/5 1/2,1/3,1/4,1/5,1/6 1/3,1/
16、4,1/5,1/6,1/7 1/4,1/5,1/6,1/7,1/8 1/5,1/6,1/7,1/8,1/9Name Size Bytes Classa 5x5 200 double arrayb 5x5 2478 sym object4.4 数学问题的解析运算数学问题的解析运算可以用命令可以用命令 help symbolic 查看查看MATLAB提供的符号运算提供的符号运算命令,可以看出有很多,我们只介绍少数几个命令。命令,可以看出有很多,我们只介绍少数几个命令。a=sym(hilb(4);b=inv(a);a b ans=1,1/2,1/3,1/4,16,-120,240,-140 1/2,
17、1/3,1/4,1/5,-120,1200,-2700,1680 1/3,1/4,1/5,1/6,240,-2700,6480,-4200 1/4,1/5,1/6,1/7,-140,1680,-4200,2800 c=a*b c=1,0,0,0 0,1,0,0 0,0,1,0 0,0,0,1矩阵求逆矩阵求逆 inv(A)4.4 数学问题的解析运算数学问题的解析运算4.4 数学问题的解析运算数学问题的解析运算极限、微分、积分和极限、微分、积分和 Taylor级数展开级数展开 limit,diff,int,taylor syms x a t h;limit(sin(x)/x)ans=1 limit
18、(x-2)/(x2-4),2)ans=1/4 limit(1+2*t/x)(3*x),x,inf)ans=exp(6*t)limit(1/x,x,0,right)ans=inf limit(1/x,x,0,left)ans=-inf limit(sin(x+h)-sin(x)/h,h,0)ans=cos(x)v=(1+a/x)x,exp(-x);limit(v,x,inf,left)ans=exp(a),04.4 数学问题的解析运算数学问题的解析运算极限、微分、积分和极限、微分、积分和 Taylor级数展开级数展开 limit,diff,int,taylor syms x t;diff(sin
19、(x2)ans=2*cos(x2)*x diff(t6,1),diff(t6,2),diff(t6,3),diff(t6,4),diff(t6,5),diff(t6,6)ans=6*t5,30*t4,120*t3,360*t2,720*t,720 syms x x1 alpha u t;int(1/(1+x2)ans=atan(x)int(sin(alpha*u),alpha)ans=-1/u*cos(alpha*u)int(x1*log(1+x1),0,1)ans=1/44.4 数学问题的解析运算数学问题的解析运算极限、微分、积分和极限、微分、积分和 Taylor级数展开级数展开 limit
20、,diff,int,taylor taylor(exp(-x)ans=1-x+1/2*x2-1/6*x3+1/24*x4-1/120*x5 taylor(log(x),6,1)ans=x-1-1/2*(x-1)2+1/3*(x-1)3-1/4*(x-1)4+1/5*(x-1)5 taylor(sin(x),pi/2,6)ans=1-1/2*(x-1/2*pi)2+1/24*(x-1/2*pi)4 taylor(xt,3,t)ans=1+log(x)*t+1/2*log(x)2*t24.4 数学问题的解析运算数学问题的解析运算无穷级数求和无穷级数求和 symsum syms n k;symsum
21、(2/2n+2/3n,n,1,inf)ans=3 symsum(k,0,n-1)ans=1/2*n2-1/2*n symsum(k2,0,10)ans=385 symsum(1/k2,1,Inf)ans=1/6*pi24.4 数学问题的解析运算数学问题的解析运算积分变换积分变换 laplace,ilaplace,fourier,ifourier,ztrans,iztrans syms a s t w x laplace(t5)ans=120/s6 laplace(exp(a*s)ans=1/(t-a)laplace(sin(w*x),t)ans=w/(t2+w2)syms t v w x fourier(exp(-x2),x,t)ans=pi(1/2)*exp(-1/4*t2)4.5 数学问题的高精度运算数学问题的高精度运算变精度运算变精度运算 vpa(S,D)。函数函数 vpa(S,D)将符号结果将符号结果 S 的数值答案求到任意指定的的数值答案求到任意指定的有效位数有效位数D,D的缺省值为的缺省值为16。vpa(pi,60)ans phi=vpa(1+sqrt(5)/2)phi=对比:对比:pi,1+sqrt(5)/2