第06章_MATLAB数值计算_例题源程序汇总
- 格式:doc
- 大小:174.50 KB
- 文档页数:15
第6章 MATLAB 数值计算
例6.1 求矩阵A 的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元素。
1356
7825632357825563101-⎡⎤⎢⎥-⎢
⎥=⎢⎥⎢⎥-⎣⎦
A A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]; max(A,[],2) %求每行最大元素 min(A,[],2) %求每行最小元素 max(A) %求每列最大元素 min(A) %求每列最小元素
max(max(A)) %求整个矩阵的最大元素。也可使用命令:max(A(:)) min(min(A)) %求整个矩阵的最小元素。也可使用命令:min(A(:))
例6.2 求矩阵A 的每行元素的乘积和全部元素的乘积。
A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2)
prod(S) %求A 的全部元素的乘积。也可以使用命令prod(A(:))
例6.3 求向量X =(1!,2!,3!,…,10!)。
X=cumprod(1:10)
例6.4 对二维矩阵x ,从不同维方向求出其标准方差。
x=[4,5,6;1,4,8] %产生一个二维矩阵x y1=std(x,0,1) y2=std(x,1,1) y3=std(x,0,2) y4=std(x,1,2)
例6.5 生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。
X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)
例6.6 对下列矩阵做各种排序。
185412613713-⎡⎤
⎢⎥=⎢⎥
⎢⎥-⎣⎦
A A=[1,-8,5;4,12,6;13,7,-13];
sort(A) %对A 的每列按升序排序 -sort(-A,2) %对A 的每行按降序排序
[X,I]=sort(A) %对A 按列排序,并将每个元素所在行号送矩阵I
例6.7 给出概率积分
2
(d x
x f x x -e
的数据表如表6.1所示,用不同的插值方法计算f (0.472)。
x=0.46:0.01:0.49; %给出x ,f(x) f=[0.4846555,0.4937542,0.5027498,0.5116683]; format long
interp1(x,f,0.472) %用默认方法,即线性插值方法计算f(x) interp1(x,f,0.472,'nearest') %用最近点插值方法计算f(x) interp1(x,f,0.472,'spline') %用3次样条插值方法计算f(x) interp1(x,f,0.472,'cubic') %用3次多项式插值方法计算f(x) format short
例6.8 某检测参数f 随时间t 的采样结果如表6.2,用数据插值法计算t =2,7,12,17,22,17,32,37,42,47,52,57时的f 值。
T=0:5:65; X=2:5:57;
F=[3.2015,2.2560,879.5,1835.9,2968.8,4136.2,5237.9,6152.7,...
6725.3,6848.3,6403.5,6824.7,7328.5,7857.6];
F1=interp1(T,F,X) %用线性插值方法插值
F1=interp1(T,F,X,'nearest') %用最近点插值方法插值
F1=interp1(T,F,X,'spline') %用3次样条插值方法插值
F1=interp1(T,F,X,'cubic') %用3次多项式插值方法插值
例6.9设z=x2+y2,对z函数在[0,1]×[0,2]区域内进行插值。
x=0:0.1:1;y=0:0.2:2;
[X,Y]=meshgrid(x,y); %产生自变量网格坐标
Z=X.^2+Y.^2; %求对应的函数值
interp2(x,y,Z,0.5,0.5) %在(0.5,0.5)点插值
interp2(x,y,Z,[0.5 0.6],0.4) %在(0.5,0.4)点和(0.6,0.4)点插值
interp2(x,y,Z,[0.5 0.6],[0.4 0.5]) %在(0.5,0.4)点和(0.6,0.5)点插值
%下一命令在(0.5,0.4),(0.6,0.4),(0.5,0.5)和(0.6,0.5)各点插值
interp2(x,y,Z,[0.5 0.6]',[0.4 0.5])
例6.10某实验对一根长10米的钢轨进行热源的温度传播测试。用x表示测量点(米),用h表示测量时间(秒),用T表示测得各点的温度(℃),测量结果如表6.2所示。
试用3次多项式插值求出在一分钟内每隔10秒、钢轨每隔0.5米处的温度。
x=0:2.5:10;
h=[0:30:60]';
T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];
xi=[0:0.5:10];
hi=[0:10:60]';
temps=interp2(x,h,T,xi,hi,'cubic');
mesh(xi,hi,temps);
例6.11 用一个3次多项式在区间[0,2π]内逼近函数x sin 。
X=linspace(0,2*pi,50); Y=sin(X);
P=polyfit(X,Y,3) %得到3次多项式的系数和误差 X=linspace(0,2*pi,20); Y=sin(X); Y1=polyval(P,X) plot(X,Y,':o',X,Y1,'-*')
例6.12 设
54322
()352756()353
f x x x x x x
g x x x =-+-++=+-
(1) 求f (x )+g (x )、f (x )-g (x )。 (2) 求f (x )×g (x )、f (x )/g (x )。
f=[3,-5,2,-7,5,6];g=[3,5,-3];g1=[0,0,0,g]; f+g1 %求f(x)+g(x) f-g1 %求f(x)-g(x) conv(f,g) %求f(x)*g(x)
[Q,r]=deconv(f,g) %求f(x)/g(x),商式送Q ,余式送r 。
例6.13 求有理分式的导数。
542109632
3585
()10567100
x x x x f x x x x x x +-+-=+++-- P=[3,5,0,-8,1,-5];
Q=[10,5,0,0,6,0,0,7,-1,0,-100]; [p,q]=polyder(P,Q)
例6.14 已知多项式x 4+8x 3-10,分别取x =1.2和一个2×3矩阵为自变量计算该多项式的值。
A=[1,8,0,0,-10]; %4次多项式系数 x=1.2; %取自变量为一数值 y1=polyval(A,x)
x=[-1,1.2,-1.4;2,-1.8,1.6] %给出一个矩阵x
y2=polyval(A,x) % 分别计算矩阵x 中各元素为自变量的多项式之值
例6.15 仍以多项式x 4+8x 3-10为例,取一个2×2矩阵为自变量分别用polyval 和polyvalm