Matlab程序设计实验5

更新时间:2023-12-09 20:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中南大学MATLAB实验

报告五

2014年6月2日

MATLAB程序设计实验5

数据分析和多项式计算

一.实验目的

1. 掌握数据统计和分析的方法。

2. 掌握数值插值与曲线拟合的方法和应用。 3. 掌握快速傅立叶变换的应用方法。 4. 掌握多项式的常用运算

二.实验内容

1. 利用randn函数生成符合正态分布的10x5随机矩阵,进行以下操作:

a) 矩阵中各列元素的均值和标准方差。 解:程序及结果如下: A=randn(10,5); pjz=mean (A) fc=std(A,0,1) pjz =

-0.1199 -0.1975 -0.2014 -0.6891 -0.2486 fc =

0.5407 0.9103 1.0901 0.8234 0.8529 b) 矩阵的最大元素和最小元素。 解:程序及结果如下: A=randn(10,5); zdz=max(max(A)) zxz=min(min(A)) zdz =

1.5374 zxz =

-2.5200

c) 求矩阵每行元素的和以及全部元素之和。 解:程序及结果如下: A=randn(10,5); mhh=sum(A,2) zh=sum(E) mhh = -2.5555 0.4727 -2.9256 -2.1878 -0.6500 -2.6545 -3.7814 -0.0753 -0.8694 0.6610 zh =

1.6237

d) 分别对矩阵的每列元素按照升序、每列元素按照降序排列。 解:程序及结果如下: A=randn(10,5); sx=sort(A) jx=-sort(A)

sx =

-0.9595 -2.0776 -2.5200 -2.4240 -1.8628 -0.7051 -0.8905 -1.0081 -1.5131 -0.7337 -0.5012 -0.3771 -0.6614 -1.1264 -0.6521 -0.4209 -0.3586 -0.5285 -0.8150 -0.4542 -0.1460 -0.2361 -0.3835 -0.5861 -0.2790 -0.1170 -0.1435 0.0554 -0.4246 -0.2206 0.1685 -0.0755 0.2490 -0.2238 -0.0645 0.2291 0.1391 0.5849 -0.2029 0.1033 0.5082 0.6518 0.9443 0.0581 0.1401 0.7445 1.3933 1.2538 0.3666 1.5374 jx =

0.9595 2.0776 2.5200 2.4240 1.8628 0.7051 0.8905 1.0081 1.5131 0.7337 0.5012 0.3771 0.6614 1.1264 0.6521 0.4209 0.3586 0.5285 0.8150 0.4542 0.1460 0.2361 0.3835 0.5861 0.2790 0.1170 0.1435 -0.0554 0.4246 0.2206 -0.1685 0.0755 -0.2490 0.2238 0.0645 -0.2291 -0.1391 -0.5849 0.2029 -0.1033 -0.5082 -0.6518 -0.9443 -0.0581 -0.1401 -0.7445 -1.3933 -1.2538 -0.3666 -1.5374 2.

a) 对表1使用3次样条插值计算0~90度内整数点的正弦值,0~75度内整数点的正

切值。

表1 角度 Sin Tan

解:程序及结果如下: d1=0:10:90; d2=0:5:75; C=0:15:90; D=0:15:75; a=sin(d1); b=tan(d2);

A=[0,0.2588,0.5000,0.7071,0.8660,0.9659,1.0000]; B=[0,0.2679,0.5774,1.0000,1.7320,3.7320]; c=interp1(C,A,d1,'spline') d=interp1(D,B,d2,'spline') c =

0 0 0 15 0.2588 0.2679 30 0.5000 0.5774 45 0.7071 1.0000 60 0.8660 1.7320 75 0.9659 3.7320 90 1.0000 0 0.1737 0.3420 0.5000 0.6428 0.7660 0.8660 0.9396 0.9849 1.0000

d =

Columns 1 through 8

0 0.0902 0.1784 0.2679 0.3620 0.4641 0.5774 0.7046 Columns 9through 16

0.8456 1.0000 1.1743 1.4041 1.7320 2.2008 2.8532 3.7320

b) 对表1使用5次多项式拟合方法计算0~90度内整数点的正弦值,0~75度内整数

点的正切值。 解:程序及结果如下: e=polyfit(d1,a,5) f=polyfit(d2,b,5) e =

0.0000 -0.0000 0.0002 -0.0065 0.0628 -0.1338 f =

-0.0000 0.0001 -0.0072 0.1924 -1.6727 0.9767

c) 对a)和b)的相应计算结果进行比较,绘出两种方法的误差曲线。 解:结果如下:

0.90.80.70.60.50.40.30.20.1000.10.20.30.40.50.60.70.80.91

0~90度内整数点的正弦值误差曲线

1.61.41.210.80.60.40.20-0.200.10.20.30.40.50.60.70.80.91

0~75度内整数点的正切值误差曲线

3. 已知h?t??e,t?0,取点数N=64,对t从0~5秒进行采样,用FFT做快速傅立叶

?t变换,并绘制相应的振幅-频率图。

N=64; T=5;

t=linspace(0,T,N); h=exp(-t); dt=t(2)-t(1); f=1/dt; A=fft(h); F=A(1:N/2+1); f=f*(0:N/2)/N; plot(f,abs(F),'-*') xlabel('frequency') ylabel('|F(k)|')

1412108|F(k)|642001234frequency43567

24. 有两个多项式P?x??2x?3x?5x?13,Q?x??x?5x?8,求P?x?、

P?x?Q?x?、P?x?/Q?x?的导数。

P=[2,-3,0,5,13]; Q=[0,0,1,5,8]; p1=polyder(P) p2=polyder(P,Q) [p,q]=polyder(P,Q) p1 =

8 -9 0 5

p2 =

12 35 4 -57 76 105 p =

4 27 34 -77 -26 -25 q =

1 10 41 80 64

5. 有三个多项式p1?x??x4?2x3?4x2?5,p2?x??x?2,p3?x??x?2x?3,求

2p?x??p1?x??p2?x?p3?x?以及p?x??0的根。

p1=[1,2,4,0,5]; p2=[0,0,0,1,2]; p3=[0,0,1,2,3]; p=p1+p2+p3 gen=roots(p) p =

1 2 5 3 10 gen =

-1.3238 + 1.6529i -1.3238 - 1.6529i 0.3238 + 1.4578i 0.3238 - 1.4578i

本文来源:https://www.bwwdw.com/article/v8c5.html

Top