第06章_MATLAB数值计算_例题源程序汇总

  • 格式:doc
  • 大小:174.50 KB
  • 文档页数:15

下载文档原格式

  / 15
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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