首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

MATLAB数值运算实验报告

来源:好兔宠物网


实验报告

系 (部):信息工程班级: 姓 名:学 号:

课 程:MATLAB 实验名称:Matlab数值运算

目录

一 . 实验目的 ................................................................. 2 二 . 实验容 ..................................................................... 2 三 . 实验步骤 ................................................................. 2 四 . 实验具体过程及数据分析 ..................................... 4 五 . 实验原始记录 ....................................................... 12 六 . 实验心得、体会及思考 ....................................... 14

1

一 . 实验目的

掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。

二 . 实验容

1.多项式运算。 2.多项式插值和拟合。 3.数值微积分。

4.结构数组和细胞数组。

三 . 实验步骤

1.多项式运算

(1)多项式表示。在MATLAB中,多项式表示成向量形式。 如:s^4+3s*s^3-5*s^2+9 >>S=[1 3 -5 0 9]

(2)多项式的加减法相当于向量的加减法,但须注意阶次要相同。如不同,低阶要补0。

如多项式2*s^2+3*s+9与多项式s^4+3*s^3-5*s^2+4s+7相加。 (3)多项式的乘、除法分别用函数conv和deconv实现。 (4)多项式求根用函数roots (5)多项式求值用函数polyval

练习1:求(s^2+1)(s+3)(s+1)/(s^3+2*s+1)的“商”及“余”多项式 2.多项式插值和拟合 有一组实验数据如表所示

2

X Y 1 16 2 32 3 70 4 142 5 260 6 436 7 682 8 1010 9 1432 10 1960 请分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估测X=9.5时Y的值。 3.数值微积分

(1)差分使用diff函数的实现

(2)可以用因变量和自变量差分的结果相除得到数值微分

(3)Cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积 练习:如图瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向向为X轴,由南到北方为Y轴,选择方便的原点,并将从最西边点到最东边界点在X轴的区间适当划分若干级,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到了下表,根据地图比例知道18mm相当于40km,试有测量数据计算瑞士国土近似面积,与其精确值41228km^2比较。 X 7 10.5 Y1 Y2 44 44 45 59 47 70 13 17.5 50 72 50 93 34 40.5 38 44.5 30 30 34 36 48 56 61 68.5 34 76.5 41 116 80.5 45 118 46 118 91 100 110 110 110 117 118 X 96 101 104 106.5 111.5 118 123.5 136.5 142 146 150 157 158 3

Y1 Y2

43 37 33 28 32 65 55 54 52 81 50 82 66 86 66 85 68 68 121 124 121 121 121 116 122 83 4.结构数组与细胞数组 (1)结构数组的创建 (2)结构数组的操作

练习:创建一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average。结构数组的大小为2*2。 (3)细胞数组的创建 (4)细胞数组的操作

练习:创建一大小为2*2细胞数组stucell,其元素的类型分别为:结构类型、字符串、矩阵和细胞类型。

四 . 实验具体过程及数据分析

1.

>> S1=[2 4 2] S1 =

2 4 2 >> roots(S1) ans = -1 -1 >> S=[1 3 -5 0 9]

4

S =

1 3 -5 0 9 >> S1=[2 3 11] S1 =

2 3 11 >> S2=[1 3 -5 4 7] S2 =

1 3 -5 >> S3=conv(S1,S2) S3 =

2 9 10 >> S4=deconv(S3,S1) S4 =

1 3 -5 >> S1=[2 4 2] S1 =

2 4 2 >> polyval(S1,3) ans = 32 >> x=1:10 x =

4 7 26 -29 4 7 65 77 5

1 2 3 4 5 6 7 8 9 10 >> y=polyval(S1,x) y =

8 18 32 50 72 98 128 162 200 242 练习1: >> clear all >> s1=[1 0 1] s2=[1 3] s3=[1 1] s4=conv(s1,s2) Y=conv(s4,s3) X=[1 0 2 1] [Q,R]=deconv(Y,X) s1 =

1 0 1 s2 =

1 3 s3 =

1 1 s4 =

1 3 1 3

6

Y =

1 4 4 4 3 X =

1 0 2 1 Q =

1 4 R =

0 0 >> poly2sym(Q) ans = x + 4

>> poly2sym(R) ans =

2*x^2 - 5*x - 1 >> conv(Q,X)+R-Y ans =

0 0 >> s1=[1 0 1] s2=[1 3] s3=[1 1] s4=conv(s1,s2) Y=conv(s4,s3)

2 -5 0 0 -1 0 7

X=[1 0 2 1] [Q,R]=deconv(Y,X) s1 =

1 0 1 s2 =

1 3 s3 =

1 1 s4 =

1 3 Y =

1 4 X =

1 0 Q =

1 4 R =

0 0

poly2sym(Q) ans = x + 4

1 3 4 4 2 1 2 -5 3 -1 8

poly2sym(R) ans = 2*x^2 - 5*x - 1 conv(Q,X)+R-Y ans =

0 0 0 0 0 2. x=1:10

y=[16 32 70 142 260 436 682 1010 1432 1960] p1=polyfit(x,y,1) y1=polyval(p1,9.5) 3. x=1:2:9 diff(x)

x=linspace(0,2*pi,100); y=sin(x); plot(x,y) y1=diff(y)./diff(x); plot(x(1:end-1),y1)

x=ones(1,10)

9

cumsum(x) x=linspace(0,pi,100); y=sin(x); s=trapz(x,y) 练习2:

x=[7 10.5 13 17.5 34 40.5 44.5 48 56 61 68.5 76.5 80.5 91 96 101 104 106.5 111.5 118 123.5 136.5 142 146 150 157 158];

y1=[44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68];

y2=[44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 116 122 83 81 82 86 85 68]; X=x./18*40; Y1=y1./18*40; Y2=y2./18*40;

t1=trapz(X,Y1),t2=trapz(X,Y2),t=t2-t1 4.

(1)>> student.number='20050731001'; >> student.name='jack';

>> student(2).number='20050731002'; >> student(2).name='lucy'; (2)

>>student(1).subject=[] >>student(1).sorce=[] >>student

10

>>fieldnames(student) >>getfield(student,{2},'name') >>student=rmfield(student,'subject')

>>student=setfield(student,{1},'sorce',90); >>stuent(2).sorce=88; (3)

>> A={'How are you!',ones(3);[1 2;3 4],{'cell'}}; >> B(1,1)={'Hello world'}; >> B(2,1)={[ 1 2 3 4]}; (4) >>ans1=A(1,1) >> ans2=A{1,1} >> whos ans1 ans2 >> celldisp(A) >> a1=A{2,1}(1,2) >>[a2 a3]=deal(A{1:2})

11

. 实验原始记录

12

13

六 . 实验心得、体会及思考

通过本次实验,我更熟练的掌握了MATLAB的数值运算及其运算中所用到的函数,更好的明白了一些MATLAB数值运算的基本操作。做实验不仅仅要我们有清晰的思路,还要有一丝不苟的态度,认真严谨的实验才能得出更准确的实验结果。

14

因篇幅问题不能全部显示,请点此查看更多更全内容