文档库 最新最全的文档下载
当前位置:文档库 › Matlab上机实验答案

Matlab上机实验答案

Matlab上机实验答案
Matlab上机实验答案

Matlab上机实验答案

实验一MATLAB运算基础

1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

>> z1=2*sin(85*pi/180)/(1+exp(2))

z1 =

0.2375

>> x=[2 1+2i;-0.45 5];

>> z2=1/2*log(x+sqrt(1+x^2))

z2 =

0.7114 - 0.0253i 0.8968 + 0.3658i

0.2139 + 0.9343i 1.1541 - 0.0044i

2.9,,2.9,

3.0

>> a=-3.0:0.1:3.0;

>> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) 可以验证z3==z33,是否都为1)

z3 =

Columns 1 through 5

0.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i 0.7913 + 3.1416i 0.7822 + 3.1416i

Columns 6 through 10

0.7602 + 3.1416i 0.7254 + 3.1416i 0.6784 + 3.1416i 0.6196 + 3.1416i 0.5496 + 3.1416i

Columns 11 through 15

0.4688 + 3.1416i 0.3780 + 3.1416i 0.2775 + 3.1416i 0.1680 + 3.1416i 0.0497 + 3.1416i

Columns 16 through 20

-0.0771 + 3.1416i -0.2124 + 3.1416i -0.3566 + 3.1416i -0.5104 + 3.1416i -0.6752 + 3.1416i

Columns 21 through 25

-0.8536 + 3.1416i -1.0497 + 3.1416i -1.2701 + 3.1416i -1.5271 + 3.1416i -1.8436 + 3.1416i

Columns 26 through 30

-2.2727 + 3.1416i -2.9837 + 3.1416i -37.0245 + 0.0000i -3.0017 + 0.0000i -2.3085 + 0.0000i

Columns 31 through 35

-1.8971 + 0.0000i -1.5978 + 0.0000i -1.3575 + 0.0000i -1.1531 + 0.0000i -0.9723 + 0.0000i

Columns 36 through 40

-0.8083 + 0.0000i -0.6567 + 0.0000i -0.5151 + 0.0000i -0.3819 + 0.0000i -0.2561 + 0.0000i

Columns 41 through 45

-0.1374 + 0.0000i -0.0255 + 0.0000i 0.0792 + 0.0000i 0.1766 + 0.0000i 0.2663 + 0.0000i

Columns 46 through 50

0.3478 + 0.0000i 0.4206 + 0.0000i 0.4841 + 0.0000i 0.5379 + 0.0000i 0.5815 + 0.0000i

Columns 51 through 55

0.6145 + 0.0000i 0.6366 + 0.0000i 0.6474 + 0.0000i 0.6470 + 0.0000i 0.6351 + 0.0000i

Columns 56 through 60

0.6119 + 0.0000i 0.5777 + 0.0000i 0.5327 + 0.0000i 0.4774 + 0.0000i 0.4126 + 0.0000i

Column 61

0.3388 + 0.0000i

(4) 22

42011

122123t t z t t t t t ?≤

,其中t =0:0.5:2.5 >> t=0:0.5:2.5; >>

z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2.*t+1)

z4 =

0 0.2500 0 1.2500 1.0000 2.2500 2. 已知:

1234413134787,2033657327A B --????

????==????????-????

求下列表达式的值:

(1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A

(5) [A,B]和[A([1,3],:);B^2]

>> A=[12 34 -4;34 7 87;3 65 7];

>> B=[1 3 -1; 2 0 3;3 -2 7];

>> A+6*B

ans =

18 52 -10

46 7 105

21 53 49

>> I=eye(3);

>> A-B+I

ans =

12 31 -3

32 8 84

0 67 1

(2)

>> A*B

ans =

68 44 62

309 -72 596

154 -5 241

>> A.*B

ans =

12 102 4

68 0 261

9 -130 49

(3)

>> A^3

ans =

37226 233824 48604

247370 149188 600766

78688 454142 118820

>> A.^3

ans =

1728 39304 -64

39304 343 658503

27 274625 343 (4)

>> A/B

ans =

16.4000 -13.6000 7.6000

35.8000 -76.2000 50.2000

67.0000 -134.0000 68.0000

>> B\A

ans =

109.4000 -131.2000 322.8000

-53.0000 85.0000 -171.0000

-61.6000 89.8000 -186.2000

(5)

>> [A,B]

ans =

12 34 -4 1 3 -1

34 7 87 2 0 3

3 65 7 3 -2 7 >> [A([1,3],:);B^2]

ans =

12 34 -4

3 65 7

4 5 1

11 0 19

20 -5 40

3. 设有矩阵A 和B

12

3

4

53

166789101769,11

121314150

23416171819209

7021

2223242541311A B ????

????-???

?????==-???

?????????????

(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D 。 (3) 查看MATLAB 工作空间的使用情况。 >> A=(reshape(1:25,5,5))';

>> B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]; >> C=A*B C =

93 150 77 258 335 237 423 520 397 588 705 557 753 890 717 >> D=C(3:5,2:3) D =

520 397

705 557

890 717

>> whos

Name Size Bytes Class Attributes

A 5x5 200 double

B 5x3 120 double

C 5x3 120 double

D 3x2 48 double

4. 完成下列操作:

(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

>> n=100:999;

>> l=find(rem(n,21)==0);

>> length(l)

ans =

43

>> ch='aegbBOIEG0je23RGnc';

>> wz=find(ch>='A'&ch<='Z'); >> ch(wz)=[] ch =

aegb0je23nc

实验二 MATLAB 矩阵分析与处理

1. 设有分块矩阵33322322E R A O S ??????

=?

???

,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证2

2

E R RS A O S +??

=????

。 >> E=eye(3); >> R=rand(3,2); >> O=zeros(2,3); >> S=diag(1:2); >> A=[E,R;O,S] A =

1.0000 0 0 0.8147 0.9134 0 1.0000 0 0.9058 0.6324 0 0 1.0000 0.1270 0.0975 0 0 0 1.0000 0 0 0 0 0

2.0000

>> A^2 ans =

1.0000 0 0 1.6294

2.7401 0 1.0000 0 1.8116 1.8971 0 0 1.0000 0.2540 0.2926 0 0 0 1.0000 0 0 0 0 0 4.0000 >> [E,R+R*S;O,S^2] ans =

1.0000 0 0 1.6294

2.7401 0 1.0000 0 1.8116 1.8971 0 0 1.0000 0.2540 0.2926 0 0 0 1.0000 0 0 0 0 0 4.0000 >> A^2==[E,R+R*S;O,S^2] ans =

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 通过验证,矩阵22

E R RS A O

S +??

=?

???成立。

2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?

>> H=hilb(5)

H =

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.1111

>> P=pascal(5)

P =

1 1 1 1 1

1 2 3 4 5

1 3 6 10 15

1 4 10 20 35

1 5 15 35 70

>> Hh=det(H)

Hh =

3.7493e-12

>> Hp=det(P)

Hp =

1

>> Th=cond(H)

Th =

4.7661e+05

>> Tp=cond(P)

Tp =

8.5175e+03

答:5阶帕斯卡矩阵P的性能好。矩阵的性能是由条件数决定的,条件数越接近于1其性能就越好。由上机操作求得Th=4.7661e+005,Tp=8.5175e+003。Tp的值更接近于1则其性能要好。所以5阶帕斯卡矩阵P的性能好。

3. 建立一个5×5矩阵,求它的行列式值、迹、秩和范数。

>> A=rand(5)

A =

0.2785 0.9706 0.4218 0.0357 0.7431

0.5469 0.9572 0.9157 0.8491 0.3922

0.9575 0.4854 0.7922 0.9340 0.6555

0.9649 0.8003 0.9595 0.6787 0.1712

0.1576 0.1419 0.6557 0.7577 0.7060

>> det(A)

ans =

-0.1322

>> trace(A)

ans =

3.4127

>> rank(A)

ans =

5

>> norm(A)

ans =

3.2759

4. 已知

2961820512885A -??

??=????-??

求A 的特征值及特征向量,并分析其数学意义。

>> A=[-29,6,18;20,5,12;-8,8,5] A =

-29 6 18 20 5 12 -8 8 5

>> [V,D]=eig(A) V =

0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D =

-25.3169 0 0 0 -10.5182 0 0 0 16.8351

在数学上,特别是线性代数中,对于一个给定的线性变换,它的特征向量(本征向量或称正规正交向量)是这样一个非零的向量v :当v 经过这个线性变换的作用之后,得到的新向量(长度也许改变)仍然与原来的v 保持在同一条线上。一个特征向量的长度在该线性变换下缩放的比例称为其特征值(本征值)。如果特征值为正,则表示v 在经过线性变换的作用后方向也不变;如果特征值为负,说明方向会反转;如果特征值为0,则是表示缩回零点。但无论怎样,仍在同一条直线上。

(1) 求方程的解。

(2) 将方程右边向量元素b3改为0.53再求解,并比较b3的变化和解的相对变化。

(3) 计算系数矩阵A的条件数并分析结论。

>> format rat %用分数格式显示

>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]

A =

1/2 1/3 1/4

1/3 1/4 1/5

1/4 1/5 1/6

>> format %恢复默认格式

>> b=[0.95;0.67;0.52]

b =

0.9500

0.6700

0.5200

>> X=A\b

X =

1.2000

0.6000

0.6000

>> b2=[0.95;0.67;0.53]

b2 =

0.9500

0.6700

0.5300

>> X2=A\b2

X2 =

3.0000 -6.6000 6.6000

>> D=cond(A) D =

1.3533e+03

矩阵的条件数决定矩阵的性能,条件数越接近于1其性能越好,系数矩阵A 的条件数为1.3533e+003,和1相差很大,则其性能不好。因此b 矩阵个别元素的微小变动,对方程的解(X 值)影响很大。

6. 建立A 矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。

实验三 选择结构程序设计

1. 求分段函数的值。

2226035605231x x x x y x x x x x x x ?+-<≠-?

=-+≤<≠≠??--?

且且及其他

用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。

程序设计:

clear;

x=[-5.0 -3.0 1.0 2.0 2.5 3.0 5.0]; if x<0&x~=-3 y=x.^2+x-6;

elseif x>=0&x<5&x~=2&x~=3 y=x.^2-5*x+6; else

y=x.^2-x-1; end

y

运行结果:

y =

29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000

2. 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89分为B,79分~79分为C,60分~69分为D,60分以下为E。

要求:

(1) 分别用if语句和switch语句实现。

程序设计:

(一)用if语句

clear;

score=input('请输入百分制成绩:');

a=fix(score/10);

if a==9 | a==10

grade='A';

elseif a==8

grade='B';

elseif a==7

grade='C';

elseif a==6

grade='D';

else

grade='E';

end

grade

(二)用if语句

clear;

score=input('请输入百分制成绩:');

if score>=90&score<=100

grade='A';

elseif score>=80&score<90

grade='B';

elseif score>=70&score<80

grade='C';

elseif score>=60&score<70

grade='D';

else

grade='E';

end

grade

(三)用switch语句

clear;

score=input('请输入百分制成绩:');

switch fix(score/10)

case {9,10}

grade='A';

case 8

grade='B';

case 7

grade='C';

case 6

grade='D';

otherwise

grade='E';

end

grade

(2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。clear;

score=input('请输入百分制成绩:');

if score>=0&score<=100 %判断成绩合理性

switch fix(score/10)

case {9,10}

grade='A';

case 8

grade='B';

case 7

grade='C';

case 6

grade='D';

otherwise

grade='E';

end

grade

else

disp('error') %成绩不合理时输出出错信息

end

3. 硅谷公司员工的工资计算方法如下:

(1) 工作时数超过120小时者,超过部分加发15%。

(2) 工作时数低于60小时者,扣发700元。

(3) 其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

程序设计:

clear;

num=input('请输入员工工号:');

time=input('请输入员工工时数:');

if time<60

wages=time*84-700;

elseif time>120

wages=84*120+(time-120)*84*(1+0.15);

else

wages=time*84;

end

disp=(['员工工号:' num2str(num) ' 应发工资:' num2str(wages)])

运行结果:

请输入员工工号:4

请输入员工工时数:35

disp =

员工工号:4 应发工资:2240

4. 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。

解:

程序设计:

clear;

a=floor(rand(1)*90+10)

b=floor(rand(1)*90+10)

c=input('请输入运算符号:','s');

if c=='+'

s=a+b

elseif c=='-'

s=a-b

elseif c=='*'

s=a*b

elseif c=='\'

s=a\b

else

disp('error')

end

运行结果:

a =

30

b =

77

请输入运算符号:-

s =

-47

5. 建立5×6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

程序设计:

clear;

A=rand(5,6)

n=input('n=?')

if n>=1&n<=5

B=A(n,1:6);

else

disp('erro!')

B=A(5,1:6);

end

B

运行结果:

A =

0.7792 0.0119 0.5285 0.6892 0.9133 0.0782

0.9340 0.3371 0.1656 0.7482 0.1524 0.4427

0.1299 0.1622 0.6020 0.4505 0.8258 0.1067

0.5688 0.7943 0.2630 0.0838 0.5383 0.9619

0.4694 0.3112 0.6541 0.2290 0.9961 0.0046

n=?3

n =

3

B =

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

matlab上机习题2

实验二 基本矩阵操作 实验目的: ① 掌握matlab 变量和数据操作; ② 掌握matlab 矩阵的创立、拆分及特殊矩阵; ③ 掌握matlab 运算,掌握matlab 在矩阵分析中的应用,掌握稀疏矩阵的存储方式和创建方法; ④ 掌握矩阵的基本运算和结构体数组的创建。 ⑤ 了解字符串处理函数。 实验要求:给出程序和实验结果。 实验内容: 1、利用列向量()1,2,3,,10T 建立一个范得蒙矩阵A ,并利用位于矩阵A 的奇数行偶数列的元素建立一个新的矩阵B ,须保持这些元素的相对位置不变。 2、矩阵的基本运算与点运算的区别。 3、给出矩阵的两种存储方式的联系和区别,这两种存储方式在实际应用中主要应用于具有什么特点的矩阵? 4*.将字符串'very good'转换为等值的整数。 5.按水平和竖直方向分别合并下述两个矩阵: 6. 分别删除第5题两个结果的第2行。 7. 分别将第5题两个结果的第2行最后3列的数值改为[11 12 13]。 8. 分别查看第5题两个结果的各方向长度。 9*. 分别判断pi 是否为字符串和浮点数。 10.分别将第5题两个结果均转换为2?9的矩阵。 11.计算第5题矩阵A 的转置。 12.分别计算第5题矩阵A 和B 的A +B 、A .* B 和A \B 。 13.判断第5题矩阵A 和B 中哪些元素值不小于4。 14*.分别用函数strcat()和矩阵合并符合并如下字符串:' The picture is '和' very good '。 15*.创建字符串数组,其中元素分别为‘Picture ’和'Pitch '。 16*.在第14题结果中查找字符串'e'。 17*.在第15题结果中匹配字符串'Pi'。

matlab作业

上机实践练习五 实验五:MATLAB 数据可视化 实验目的: 掌握MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。 学时:2学时 实验内容: (1)二维图形绘制。 (2)隐函数绘图 (2) 三维曲线和三维曲面绘制。 (3) 图像文件的读取和显示。 1.写出实现下列图形的M文件。 t=[0:0.1:pi]; y1=sin(2*t); y2=cos(3*t); plot(t,y1,'b-o'); hold on plot(t,y2,'k:o'); xlabel('ê±??') ylabel('·ù?μ') text(1,sin(2*1),'\fontsize{16}\leftarrowsin(2t) ');

text(2.4,cos(3*(2.4)),'\fontsize{16}cos(3t)\rightarrow ',... 'HorizontalAlignment','right') 2. 将窗口分割成4个区域,并且在[] 0,2π区间上绘制1s i n 2 , 6y x π? ? =+ ?? ? ()224c o s 3,y x =()3c o s y x =,()35sin 1y x =+四条曲线,并且给每一个图形添加标 题和标注。 clear x=0:pi/10:2*pi; y1=sin(2.*x+pi/6); y2=4.*cos(3.*x.^2); y3=cos(x); y4=5.*sin(x+1); subplot(2,2,1); plot(x,y1); title('y1'); text(1,sin(2*1+pi/6),'sin(2*x+pi/6)') subplot(2,2,2); plot(x,y2) title('y2');text(2,4.*cos(3*2^2),'4*cos(3*x^2)') subplot(2,2,3); plot(x,y3)

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

Matlab上机实验

Matlab 上机实验 一、 实验目的 1、 掌握绘制MATLAB 二维、三维和特殊图形的常用函数; 2、 熟悉并掌握图像输入、输出及其常用处理的函数。 二、 实验内容 1 绘制函数的网格图和等高线图。42 2cos cos y x ye x z +-= 其中x 的21个值均匀分布在[-5,5]范围,y 的31个值均匀分布在[0,10],要求将产生的网格图和等高线图画在同一个图形窗口上。 2 绘制三维曲面图,使用纯铜色调色图阵进行着色,并进行插值着色 处理。?????===s z t s y t s x sin sin cos cos cos 230,20ππ≤≤≤≤t s 3 已知 ???????>++≤+=0),1ln(210,22x x x x e x y π 在-5<=x<=5区间绘制函数曲线。 4 已知y1=x2,y2=cos(2x),y3=y1*y2,其中x 为取值-2π~2π的等差数列(每次增加0.02π),完成下列操作: a) 在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例; b) 以子图形式,分别用条形图、阶梯图、杆图绘制三条曲线,并分别给三个图形添加标题“y1=x^2”,“y2=cos(2x)”和“y3=

y1*y2”。 5 在xy 平面内选择区域[][],,-?-8888 ,绘制函数 z =的三 种三维曲面图。 6 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x 轴,y 轴,标题为“正弦余弦函数图象”. 7 分别用线框图和曲面图表现函数z=cos(x)sin(y)/y ,其中x 的取值为 [-1.5pi,1.5pi],y=x ,要求:要有标题、坐标轴标签 8 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成) 9 2 2y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口 的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图 10 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。 11 用sphere 函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 12 以自己的个人画像或照片(JPG)为对象,读入该图像并了解图像的信息,同时利用所学函数对其进行灰度、二值、旋转及缩放等处理,并以PNG 形式输出。

matlab上机实验指导书

MATLAB应用基础实验指导书

第一章 MATLAB及其工作环境介绍 (1) 1.1 MATLAB简介 (1) 1.2 MATLAB的工作环境介绍 (1) 1.3 MATLAB的基本管理命令 (4) 第二章 MATLAB的数值计算功能 (5) 2.1 变量与赋值语句 (5) 2.2 MATLAB矩阵 (5) 2.3 MATLAB表达式 (10) 2.4 MATLAB常用数学函数 (11) 2.5 矩阵的基本运算 (12) 2.6 数组运算 (16) 2.7 多项式及其运算 (17) 第三章 MATLAB程序设计入门 (19) 3.1 M文件 (19) 3.2 数据的输入输出 (21) 3.3 全局变量和局部变量 (23) 3.4 程序流程控制 (23) 第四章 MATLAB的符号运算功能 (28) 4.1 建立符号对象 (28) 4.2 符号算术运算 (29) 4.3 符号微积分运算 (32) 4.4 符号函数的可视化 (34) 第五章 MATLAB的可视化功能 (37) 5.1 二维图形 (37) 5.2绘制三维图形 (42) 5.3 特殊坐标图形 (44) 5.4 图形句柄 (45)

第一章 MATLAB及其工作环境介绍 1.1 MATLAB简介 MATLAB是matrix和laboratory前三个字母的缩写,意思是实验室矩阵。MATLAB 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,经过十多年的发展与完善,MATLAB已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MATLAB数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的体系。MATLAB由“主包”和三十多个扩展功能和应用学科性的工具箱组成。 MATLAB具有以下基本功能: ●数值计算功能 ●符号计算功能 ●图形处理及可视化功能 ●可视化建模及动态仿真功能 MATLAB语言是以矩阵计算为基础的程序设计语言,语法规则简单易学。其指令格式与数学表达式非常相近,用MATLAB编写程序犹如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高效率,其程序编译和执行速度远远超过了传统的C和FORTRAN语言,因而用MATLAB 编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使技术人员对大量原始数据的分析变得轻松和得心应手。 MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前MATLAB已成为国际上公认的最优秀的科技应用软件。 1.2 MATLAB的工作环境介绍 一、MATLAB的工作环境

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

matlab上机实验五

上机五 1、 众所周知,水是地球上所有生命赖以生存的基础。没有水,一切生命创造的精彩都将不复存在。当今世界,经济在高速发展,我们对于水需求更大,然而我们却在面临前所未有的水危机,水污染的恶化更使水短缺雪上加霜。我们的水资源正在遭受各种污染的侵袭,水污染严重破坏生态环境、影响人类生存,要想实现人类社会的可持续发展,首先要解决水污染问题。 由有害化学物质造成水的使用价值降低或丧失称之为水污染。水的污染有两类:一类是自然污染;另一类是人为污染。而后者是主要的。水污染可根据污染杂质的不同而主要分为化学性污染、物理性污染和生物性污染三大类。水中杂质按尺寸分,可分为溶解物、胶体颗粒和悬浮物3种。有些杂质可以用基于高浓度、外加计量反应试剂为基础的传统的物化方法(如沉降、吸附、湿式氧化等) 以及生化技术等进行处理。而对于天然水体和饮用水中低浓度、高毒性、难降解污染物 (如多溴联苯醚、全氟辛酸(磺酸)、消毒副产物、内分泌干扰物、PPCPs(抗生素)等) 很难用前述传统的物化方法和生化技术等技术进行处理,迫切需要提出建立新型的高效选择性检测和消除的原理和方法。 问题:附件中给定的数据是利用动态光反射仪器测量出水中某污染物粒径随时间的变化值,请就给定的数据拟合出粒径随时间变化的曲线和分布。尝试拟合出相应的函数? Time (s) Aggregation Size (nm纳米) 0 50.72 21 67.96 42 73.13 63 82.6 84 83.6 105 89.09 126 93.16 147 101.1 168 106.3 189 104.6

210 108.6 231 115.1 252 112 273 122.1 294 132 315 132.9 336 131.9 357 128.7 378 142.8 399 142.6 420 152.7 441 152.6 462 147.8 483 149.5 504 156.2 525 170.1 546 159.4 567 167.3 588 171.5 609 165.1 630 178.6 651 174.5 672 169.8 693 174.4 714 179 735 176.1 756 165.6 777 166 798 181.4 819 190.2 840 185.2 861 188.4 882 187.4 903 197.9 924 193.7 945 210.6 966 212.5 987 196.5 1008 195.3 1029 215.3 1050 208.2 1071 217.5 1092 206.7 1113 232.3

MATLAB上机实验练习题答案

数学建模 MATLAB上机实验练习题 1、给出一个系数矩阵A[234;541;132],U=[123],求出线性方程组的一个精确解。 2、给出两组数据x=[00.30.81.11.62.3]’y=[0.820.720.630.600.550.50]’,我们可以简单的 认为这组数据在一条衰减的指数函数曲线上,y=C1+C2e-t通过曲线拟合求出这条衰减曲线的表达式,并且在图形窗口画出这条曲线,已知的点用*表示。 3、解线性方程 4、通过测量得到一组数据: 5、已知一组测量值 6、从某一个过程中通过测量得到: 分别采用多项式和指数函数进行曲线拟合。 7、将一个窗口分成四个子窗口,分别用四种方法做出多峰函数的表面图(原始数据法,临近 插值法,双线性插值法,二重三次方插值法) 8、在同一窗口使用函数作图的方法绘出正弦、余弦、双曲正弦、双曲余弦。分别使用不同的 颜色,线形和标识符。 9、下面的矩阵X表示三种产品五年内的销售额,用函数pie显示每种产品在五年内的销售额

占总销售额的比例,并分离第三种产品的切片。 X=19.322.151.6 34.270.382.4 61.482.990.8 50.554.959.1 29.436.347.0 10、对应时间矢量t,测得一组矢量y t00.30.8 1.1 1.6 2.3 y0.50.82 1.14 1.25 1.35 1.40 采用一个带有线性参数的指数函数进行拟合,y=a0+a1e-t+a2te-t,利用回归方法求出拟合函数,并画出拟合曲线,已知点用圆点表示。 11、请创建如图所示的结构数组(9分) 姓名编号指标 江明顺071023身高:176,体重:82 于越忠060134身高:168,体重:74 邓拓050839身高:182,体重:77 12、创建如图所示的元胞数组。(9分) 13、某钢材厂从1990年到2010年的产量如下表所示,请利用三次样条插值的方法计算1999年该钢材厂的产量,并画出曲线,已知数据用‘*’表示。要求写出达到题目要求的MATLAB 操作过程,不要求计算结果。 年份19901992199419961998200020022004200620082010 产量(万吨)75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344 14、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。 time=[2.55.07.510.013.017.020.030.040.050.060.070.0] res=[0.290.560.771.051.361.522.002.272.813.053.253.56]

Matlab上机实验答案 (1)

Matlab上机实验答案 实验一MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/200)/(1+exp(2)) z1 = 0.2375 >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7120 - 0.0253i 0.8968 + 0.3658i 0.2209 + 0.9343i 1.2041 - 0.0044i 2.9,,2.9, 3.0

>> a=-3.0:0.1:3.0; >> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 0.7388 + 3.2020i 0.7696 + 3.2020i 0.7871 + 3.2020i 0.7920 + 3.2020i 0.7822 + 3.2020i Columns 6 through 10 0.7602 + 3.2020i 0.7254 + 3.2020i 0.6784 + 3.2020i 0.6206 + 3.2020i 0.5496 + 3.2020i Columns 11 through 20 0.4688 + 3.2020i 0.3780 + 3.2020i 0.2775 + 3.2020i 0.2080 + 3.2020i 0.0497 + 3.2020i

电子科技大学matlab-上机实验五

Matlab 与数值分析实验报告(五) 沈汉男 一、实验的性质和任务 通过上机实验,使学生对数值积分、微分方程求解方法有一个初步的理解。 二、实验内容 1.选用复合Simpson 公式,计算 并用Matlab 的符号运算工具箱计算其精确值。比较结果,找出问题原理,提出解决问题的方法。 2.求积分方程 t t e ds s y e e t y --=?10 )(12)(的数值解和精确解,分析二者的差异。 3.利用Euler 法对不同的步长求下面初值问题的数值解: ???=-=10 )0(20)()('y t y t y 并通过绘图,与方程的解析解进行比较。 三、实验过程 实验1 a.实验过程: (1)、创建文件simpr1.m 如下: function s=simpr1(f,a,b,n)h=(b-a)/(2*n);s1=0;s2=0;for k=1:n x=a+h*(2*k-1);s1=s1+feval('f',x);end for k=1:(n-1)x=a+h*2*k;s2=s2+feval('f',x);end s=h*(feval('f',a)+feval('f',b)+4*s1+2*s2)/3 dx x x ?--+1 1)1ln()1ln(

创建文件f.m 如下: function y=f(x)y=(log(1+x))*(log(1-x)); 在主界面中输入 simpr1('f',-1,1,10) 所得结果为: s = -Inf ans = -Inf (2)在主界面中输入程序 clear all syms x y=int(log(1+x)*log(1-x),'x','-1','1') eval(y) 所得结果为 y = 2*log(2)^2-pi^2/3-log(16)+4 ans = -1.1016 b.实验结果分析: 由上面的实验结果可以看出有时候复合Simpson 公式并不能求出所需解实验2: a.实验过程:原积分方程为 t t e ds s y e e t y --=?10 )(12)(对其进行化简和变形,得: ?? ???+==21)0(' e y y y 原问题转化为一个常微分初值问题。

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ?? ????++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)

MATLAB上机习题一

MATLAB上机习题一 请按以下步骤完成上机实验: 1)在FTP上下载“MATLAB上机习题一.doc”文件,所有习题列在该文件内; 2)在MATLAB中完成所有习题,并将屏幕截图粘贴到相应习题后面; 3)如果习题是问答题,请将答案写在题目后; 4)如果有的习题要求提供脚本文件,请将脚本文件内容拷贝到相应习题后; 5)将文件保存并重命名为“自己的学号-姓名”,例如“20110771-张三.doc”; 6)上传该文件到FTP的相关目录。 1. 运行MATLAB软件,拖放、关闭界面上的子窗口,并恢复到原始试图。 2. 采用鼠标及命令两种方式将桌面添加到MATLAB搜索路径列表的起始及最后位置。 3. 采用鼠标及命令方式将当前工作目录设置为桌面指向的文件夹。 4. 通过使用帮助确定内置变量ispc 的含义。 6. 观察MATLAB中关键字、字符串、注释的字体显示颜色。 5. 创建double类型的变量,并进行计算 1)a=87,b=190,计算a+b、a-b、a*b;

2)创建uint8类型的变量,数值与(1)中相同,进行相同的计算,观察计算结果与预想的是否一致。 6. 计算如下表达式: 1)()sin 60 2)3e 3)3cos 4π?? ??? 4)2 7562323336 +?-?? 7. 设u=2,v=3,计算: 1)4log uv v 2)() 2 2u e v v u +- 3 8. 计算如下表达式: 1)()()3542i i -+ 2)()sin 28i - 9. 判断下面语句的运算结果,并与MATLAB 计算结果做比较:

1)420< 2)420≤ 3)420== 4)4~20= 5)''''b B < 10. 设a=39,b=58,c=3,d=7,判断下面表达式的值与MATLAB 计算结果做比较: 1)a b > 2)a b < 3)&&a b b c >> 4)a d == 5)|a b c > 6)~~d 11. 判断下列变量名哪些是合法的MATLAB 变量: 1)fred 7)fred! 2)book_1 8)book-1 3)2ndplace 9)Second_Place 4)#1 10)No_1 5)vel_5 11)vel.5 6)tan 12)while 提示,可以使用isvarname 对上述变量名进行检验。 12. 编写脚本程序,命名为barbell.m ,完成如下计算: 如图1所示的杠铃,

南邮Matlab上机实验报告五

Matlab上机实验报告 实验名称:MATLAB语言平台与SIMULINK工具箱班级:自动化二班 学号: B11050216 姓名:李鹏飞 南京邮电大学

2013年5月13日 一、目的与任务 1.学习了解MATLAB语言环境; 2.练习MATLAB命令; 4.掌握SIMULINK工具箱的应用。 二、内容与要求 1.实验内容 (1)学习了解MATLAB语言环境; (2)练习MATLAB命令的基本操作; (3)掌握SIMULINK仿真环境的使用方法; (4) 掌握线性系统仿真常用基本模块的用法 2.要求 按照实验文档的要求与步骤完成实验,撰写实验报告。 三、实验基本知识: 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。 2.掌握MATLAB常用命令 3.了解SIMULINK模块库中各子模块基本功能 四、上机练习 1.学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)>> help eye eye Identity matrix. eye(N) is the N-by-N identity matrix. eye(M,N) or eye([M,N]) is an M-by-N matrix with 1's on the diagonal and zeros elsewhere. eye(SIZE(A)) is the same size as A. eye with no arguments is the scalar 1. eye(..., CLASSNAME) is a matrix with ones of class specified by CLASSNAME on the diagonal and zeros elsewhere. Note: The size inputs M and N should be nonnegative integers. Negative integers are treated as 0. Example: x = eye(2,3,'int8');

Matlab上机实验二

1. 对Runge 函数2()1/(125)R x x =+在区间[-1,1]作下列插值逼近,并和()R x 的图 像进行比较,并对结果进行分析。 (1) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的20次Newton 插值 多项式的图像。 (2) 用节点21cos()(0,1,2...,20)42 i i x i π+==,绘出它的20次Lagrange 插值多项式的图像。

(3) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的分段线性插值函数 的图像。 (4) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的三次自然样条插值 函数的图像。

结果分析: 等距节点的Newton插值在边界附近呈现不收敛的状态,也就是所谓的Runge 现象。这是因为被插函数2 ()1/(125) R x x =+及其任意阶导数并不是一致有界的。 由Lagrange插值的余项 (n1) 1 () ()()()() (1)! n n n f R x f x L x x n ξ ω + + =-= + ,由于高阶导数值 非常大,在等距节点的高次插值中,余项的值很大,亦即误差特别大,表现为Runge现象。在实际中,除非被插函数的光滑性十分好,否则等距节点的高次插值一般不使用。 切比雪夫多项式零点插值没有出现Runge现象,这是因为对于Lagrange插 值的余项 (n1) 1 () ()()()() (1)! n n n f R x f x L x x n ξ ω + + =-= + ,切比雪夫多项式零点插值可以 将 1() n x ω +项控制在 1 2n 以下( 1 [1,1] max() n x x ω + ∈- = 1 2n ),由此可得切比雪夫多项式零点 插值的误差范围 (n1) [1,1] () max() 2(1)! n n x f R x n ξ + ∞ ∈- ≤ + ,比等距节点的高次插值小很多,因此 对于被插函数的光滑性要求要比等距节点的插值也低很多。 分段低次线性插值是常用的一种插值方式。线性插值的优点在于计算量小,但是从图中可以看出,其光滑性不够。三次样条插值要求其一阶导数是连续的,因此其准确性好,光滑性也较优。

MATLAB上机题汇总(基本题,抽3题)合肥学院

1设置matlab 的工作环境,将工作目录设置为d:\work ,添加搜索目录d:\example 2在matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下: 4/3)2 t y e π-= 3自行产生一个5行5列的数组,得到最中间的三行三行矩阵。 4用magic 产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置 5求方程组的根 x 1+4x 2-3x 3=2 2x 1+5x 2-x 3=11 x 1+6x 2+x 3=12 6已知:一个多项式的系数向量是p=[1 -6-72 -27],求这个多项式的根。 7已经两个多项式的系数分别是:[1 2 3 4]和[1 4 9 16],请求这两个多项式的乘积,及商和余数。 8给定一个多项式的根是[-5 -3+4i -3-4i],求原来的多项式 9 A=[2 3 4; 1 5 7; 6 2 5] 用什么函数,保证第一列排序的时候,其他列跟着变化。最后的结果是: [1 5 7; 2 3 4; 6 2 5] 10补充题:电路分析 电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3个回路电压的方程

方程式如下: 11121222132423432 532()0()()0()0V R I R I I R I I R I R I I R I I R I V -++-=??-++-=??-++=? 假设5个电阻值为已知,2个电压值也为已知,求3个电流值。 11自行产生一个5行5列的数组,用两种方法得到最中间的三行三行矩阵。 12根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。(思考:大于0的正常显示,小于等于0的用-10来表示) 13建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。 a={pascal(4),'hello';17.3500,7:2:100} 14建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是: 问题1,如何找到第2个人的分数并显示出来 问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来 问题3,全班同学(指这3个学生)的10门课程的每门课程的平均分如何计算出来?要求放到一个数组里。 问题4,找到这个班所有同学的姓名放到一个元胞数组里 15给定一个图像文件,格式是jpg ,通过inportdata 引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB 三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。 16手动构造一个长宽页是1000*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。然后使用image 函数显示这个图像,再用imwrite 函数保存这个图像,使这个图像用图片浏览器也能够查看。 17给定一个矩阵 a = 1 2 3 4 5 6 编写一个M 函数,要求输入是a ,输出有三个:平均数,标准差,秩。程序运行

matlab上机习题5matlab7.0二维绘图

实验五二维绘图 实验目的: ①掌握绘制数据曲线图的方法; ②掌握绘制其他坐标系下的数据曲线图和统计分析图的方法; ③掌握绘制隐函数图形的方法。 ④掌握图形修饰处理方法; 实验要求:给出程序和实验结果。 实验内容: 8. 编制程序,该程序绘制两条曲线,x的取值在[0,2pi],易pi/10为步长,一条是正弦曲线,一条是余弦曲线,线宽为6个象素,正弦曲线为绿色,余弦曲线为红色,线型分别为实线和虚线。给所绘的两条曲线增添图例,分别为“正弦曲线”和“余弦曲线”。 9. 在同一坐标内,分别用不同线型和颜色绘制曲线y1= 和y2=(πx),标记两曲线交叉点。 10. 在0≤x≤2区间内,绘制曲线y1=和y2=cos(4πx),并给图形添加图形标注。 11.重新绘制第一题所描述的曲线,将正弦曲线和余弦曲线分别画在两个子图中,子图竖向排列。

12、绘制r=sin(t)cos(t)的极坐标图; 13、分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。 实验程序与结果: 1 x=-2::2; y=sin(x).*cos(x); plot(x,y,'-r') -2 -1.5 -1 -0.5 0.5 1 1.5 2 -0.5-0.4-0.3-0.2-0.100.10.20.30.4 0.5 2 ezplot('x^2/9+y^2/16-1',[-5,5,-5,5]);

x y x 2/9+y 2/16-1 = 0 -5 -4 -3 -2 -1 01 2 3 4 5 -5-4-3-2-101234 5 3 x1=-2::2; x2=-2::2; y1=sin(x2).*x1; y2=cos(x1).*x2; plot3(x1,x2,y1,'d',x1,x2,y2,'d')

D实验五 M文件和MATLAB程序设计

实验五M文件和MATLAB程序设计 一、实验目的 matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。 1.掌握M文件的使用方法。 2.掌握if语句和switch语句的使用 3. 掌握循环语句的使用 4. 通过练习理解MATLAB编程方法。 二、实验原理 1.m文件 用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file)。区别? 2.程序控制结构 1)顺序结构 2)选择结构 (1)if语句a) 单分支if语句b) 双分支if语句c) 多分支if语句 (2)switch 语句 (3)try语句 3)循环结构 (1)for 语句 (2)while语句 (3)break语句、continue语句、return使用,区别? 3.函数文件 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意事项? 三、实验要求 1.首先上机练习PPT中各种流程控制语句的有关实例。 2.然后上机练习下面的实验习题。 四、实验习题

1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2→1 3→10→5→16→8→4→2→1 6→3→10→5→16→8→4→2→1 运行下面的程序,按程序提示输入n=1,2,3,5,7,8,9等数来验证这一结论。 %classic "3n+1" problem from number theory. while 1 n=input('Enter n,negative quits:'); if n<=0 break end a=n; while n>1 if rem(n,2)==0 n=n/2; else n=3*n+1; end a=[a,n]; end a end Enter n,negative quits: 2. 编程求满足∑=>m i i 11000020的最小m 值。 a=0; i=1; while (a<100000) a=a+pow2(i); i=i+1; end m=i-1 3. 编写一个函数,计算下面函数的值,给出x 的值,调用该函数后,返回y 的值。 function [y]=myfun1(x)

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000 >> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

相关文档