MATLAB教程课后实验报告题目及解答第一至第五章

更新时间:2024-06-15 12:22:01 阅读量: 综合文库 文档下载

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

MATLAB教程实验报告

实验项目名称 实验一 Matlab基本操作

学生姓名 汪德旺 专业班级 09数教(1)班 学号 0301090131 实验成绩 日期 一. 实验目的和要求

1、 了解MATLAB 的开发环境。 2、 熟悉Matlab的基本操作。 3、掌握建立矩阵的方法。

4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。 5、填写实验报告,实验报告文件取名为report1.doc。

6、于邮件附件形式将实验报告文件report1.doc 发到邮箱matlab0909@sina.com,邮件主题为班级学号姓名,如:09数教1班15号张三。

二、实验内容

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

2sin850(1)z1? 21?e1?2i??21(2)z2?ln(x?1?x2),其中x?? ?5?2??0.45e0.3a?e?0.3a0.3?asin(a?0.3)?ln,a=-3.0,-2.9,-2.8,…, 2.8, 2.9,3.0 (3)z3?22?t2,0?t?1?(4)z4??t2?1,1?t?2,其中t?0:0.5:2.5

?t2?2t?1,2?t?3??1234?4??13?1??,B??203? 347872.已知: A?????????3657???3?27??求下列表达式的值:

(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]

3、设有矩阵A和B

??????12345?678910???3016??A=???1112131415?????1617181920?,B=?17-69?? 023-4????2122232425????970????41311??(1)求它们的乘积C。

(2)将矩阵C的右下角3*2子矩阵赋给D。 (3)查看MATLAB工作空间的使用情况。 4.完成下列操作:

(1)求[100,999]之间能被21整除的数的个数。 三. 实验结果与分析

(包括运行结果截图、结果分析等) 1、(1)z1 =0.2375 (2)z2 =

0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i (3)ans =

Columns 1 through 7

-Inf -3.0017 -2.3085 -1.8971 -1.5978 -1.3575 -1.1531

Columns 8 through 14

-0.9723 -0.8083 -0.6567 -0.5151 -0.3819 -0.2561 -0.1374

Columns 15 through 21

-0.0255 0.0792 0.1766 0.2663 0.3478 0.4206 0.4841

Columns 22 through 28

0.5379 0.5815 0.6145 0.6366 0.6474 0.6470 0.6351

Columns 29 through 34

0.6119 0.5777 0.5327 0.4774 0.4126 0.3388 (4)z4 =

0 0.2500 0 1.2500 1.0000 2.2500

2. (1)ans =

18 52 -10 46 7 105

21 53 49 ans =

12 31 -3 32 8 84 0 67 1 (2)ans =

68 44 62 309 -72 596 154 -5 241 ans =

12 102 4 68 0 261 9 -130 49 (3)

ans =

37226 233824 48604 247370 149188 600766 78688 454142 118820 ans =

1728 39304 -64 39304 343 658503 27 274625 343

(4)ans =

16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000

ans =

109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.0000 -61.6000 89.8000 -186.2000 (5)ans =

12 34 -4 1 3 -1

34 7 87 2 0 3 3 65 7 3 -2 7 ans =

12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 40 3、C =

93 150 77 258 335 237 423 520 397 588 705 557 753 890 717

四. 心得体会

(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】

1、(1)>> z1=2*sin(85*pi/180)/(1+exp(2)) (2)>> x=[2,1+2*i;-0.45,5] x =

2.0000 1.0000 + 2.0000i -0.4500 5.0000

>> z2=1/2*log(x+sqrt(1+x^2)) (3)>> a=-0.3:0.1:3.0 a =

Columns 1 through 7

-0.3000 -0.2000 -0.1000 0.0000 0.1000 0.2000 0.3000

Columns 8 through 14

0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

Columns 15 through 21

1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000

Columns 22 through 28

1.8000 1.9000 2.0000 2.1000 2.2000 2.3000 2.4000

Columns 29 through 34

2.5000 2.6000 2.7000 2.8000 2.9000 3.0000 >> (exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) Warning: Log of zero. (4)>> t=0:0.5:2.5 t =

0 0.5000 1.0000 1.5000 2.0000 2.5000

>> z4=(t>=0&t<1).*t.^2+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1) 2. (1) >> A=[12,34,-4;34,7,87;3,65,7] A =

12 34 -4 34 7 87 3 65 7

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

1 3 -1 2 0 3 3 -2 7

>> I=[1,0,0;0,1,0;0,0,1] I =

1 0 0 0 1 0 0 0 1

>> A+6*B >> A-B+I (2)>> A*B >> A.*B

(3)>> A^3 >> A.^3

(4)>> A/B >> B\\A

(5)>> [A,B]

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

3、(1)

>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25] A =

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

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

3 0 16 17 -6 9 0 23 -4 9 7 0 4 13 11

>> C=A*B

(2)>> D=[520,397;705,557;890,717]

MATLAB教程实验报告

实验项目名称 实验二 Matlab矩阵分析与处理 学生姓名 汪德旺 专业班级 数学教育一班 学号 0301090131 实验成绩 日期 二. 实验目的和要求

1、掌握生成特殊矩阵的方法。 2、掌握矩阵分析的方法。

3、会用矩阵求逆法解线性方程组。

4、填写实验报告,实验报告文件取名为report2.doc。

5、于邮件附件形式将实验报告文件report2.doc 发到邮箱matlab0909@sina.com,邮件主题为班级学号姓名,如:09数教1班15号张三。

二、实验内容

?E1、设有分块矩阵A=?3?3?O2?32R3?2?,其中E、R、Q、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,?S2?2?R+RS?。 S2???E试通过数值计算验证A=??O

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

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

?-29618??,求A的特征值及特征向量,并分析其数学意义。 205124、已知A=?????-885??5、下面是一个线性方程组:

?12?1?31??4131415??x1??0.95????1??5??x2???0.67? 1?????0.52??6??x3?14(1)求方程的解。

(2)将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。 (3)计算系数矩阵A的条件数并分析结论。

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

三. 实验结果与分析

(包括运行结果截图、结果分析等) 1、A =

1 0 0 313/424 2131/2278 0 1 0 355/2014 2571/2804 0 0 1 583/1437 759/1850 0 0 0 1 0 0 0 0 0 2 B =

1 0 0 887/809 243/179 0 1 0 941/3667 1099/2697 0 0 1 596/623 163/962 0 0 0 1 0 0 0 0 0 4 V =

4 T =

4 2、H =

1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 1/8 1/5 1/6 1/7 1/8 1/9 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 h =

1/266716800000 p =

1 T1 =

476607 T2 =

178868/21

所以P的性能更好,因为P的条件数比H的条件数更接近1。 3、A =

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ans =

0 ans =

65 ans =

2 ans =

75 4、A =

-29 6 18 20 5 12 -8 8 5 V =

698/979 395/1409 989/3619 -859/1412 -2430/3089 349/400 538/1543 423/769 578/1427 D =

-3595/142 0 0 0 -3755/357 0 0 0 4697/279

特征值和特征向量在科学研究和工程计算中都有很大应用。 5、(1)A =

1/2 1/3 1/4 1/3 1/4 1/5

1/4 1/5 1/6 B =

19/20 67/100

13/25 X =

6/5 3/5 3/5 (2)C =

19/20 67/100 53/100 X =

3 -33/5 33/5 (3)ans =

13/12

系数矩阵A性能很好。 6、A =

1 2 3 4 5 6 7 8 9 ans =

461/1025 + 388/509i 1486/2689 + 779/3767i 2873/4383 - 863/2475i 8524/8369 + 1003/11919i 851/680 + 219/9593i 524/353 - 375/9742i 1573/991 - 493/830i 1531/785 - 4459/27672i 849/367 + 385/1417i ans =

1 1393/985 1351/780 2 2889/1292 2158/881 2024/765 3363/1189 3

Sqrtm计算出来矩阵变为三行六列,而sqrt计算出来矩阵保留原来的三行三列。 四. 心得体会

(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】

1.

>> A=[eye(3),rand(3,2);zeros(2,3),diag([1,2])]

>>B=[eye(3),rand(3,2)+rand(3,2)*diag([1,2]);zeros(2,3),(diag([1,2]))^2] >> V=(det(A))^2 >> T=det(B) >> format rat 2.

>> H=hilb(5) >> P=pascal(5) >> h=det(H) >> p=det(P) >> T1=cond(H) >> T2=cond(P) 3.

>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25] >> det(A) >> trace(A) >> rank(A) >> norm(A,1) 4.

>> A=[-29,6,18;20,5,12;-8,8,5] >> [V,D]=eig(A) 5.

>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6] >> B=[0.95,0.67,0.52]' >> X=inv(A)*B

>> C=[0.95,0.67,0.53]' >> X=inv(A)*C >> norm(A,1)

>> A=[1,2,3;4,5,6;7,8,9] 6.

>> sqrtm(A) >> sqrt(A)

MATLAB教程实验报告

实验项目名称 实验三 选择结构程序设计 学生姓名 汪德旺 专业班级 09数教(1)班 学号 0301090131 实验成绩 日期

三. 实验目的和要求

1、掌握建立和执行M文件的方法。

2、掌握利用if语句实现选择结构的方法。

3、掌握利用switch语句实现多分支选择结构的方法。 4、掌握利用try语句的使用。

5、填写实验报告,实验报告文件取名为report3.doc。

5、于邮件附件形式将实验报告文件report3.doc 发到邮箱matlab0909@sina.com,邮件主题为班级学号姓名,如:09数教1班15号张三。

二、实验内容

1、求分段函数的值。

?x2?x?6,x?0且x??3?2 y??x?5x?6,0?x?5且x?2及x?3

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

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

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

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 3、硅谷公司员工的工资计算方法如下:

(1)工作时数超过120小时者,超过部分加发15%。 (2)工作时数低于60小时者,扣发15%。 (3)其余按每小时84元计发。

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

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

5、建立5*6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。 三. 实验结果与分析

(包括运行结果截图、结果分析等) 1、 y= 14 y= 11 y= 2 y= 1 y= -0.25 y= 5 y= 19

2、x=input('please import results:'); switch fix(x/10); case {9,10} assess='A'; case {8}

assess='B'; case {7}

assess='C'; case {6}

assess='D';

case {0,1,2,3,4,5} assess='E'; otherwise

assess='Error:wrong data'; end assess

x=input('please import results:'); if x<=100&x>=90 assess='A'; elseif x<=89&x>=80 assess='B'; elseif x<=79&x>=70 assess='C'; elseif x<=69&x>=60 assess='D'; elseif x<=59&x>=0 assess='E';

else assess='Error: wrong data'; end assess

3、请输入工号:5 请输入工作时长:30 您本月工资是: 1820

4、请输入一个四则运算符号+

c =

117

请输入一个四则运算符号- c =

12

请输入一个四则运算符号* c =

550

请输入一个四则运算符号/ c =

1.6939

5、请输入一个数(输出结果是一个5*6的矩阵的该行元素):12 输入错误,程序输出最后一行的元素:89 49 25 89 22 27 四. 心得体会

(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 答:题目很难,但还是摸索着完成了。 【附录----源程序】 1、

m=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]; for x=m

if x<0&x~=-3 y1=x^2+x-6;

disp(['y= ',num2str(y1)]) else if x>=0&x<5&x~=2&x~=3 y2=x^2-5*x+6;

disp(['y= ',num2str(y2)]) else

y3=x^2-x-1;

disp(['y= ',num2str(y3)]) end end

2、x=input('please import results:'); switch fix(x/10); case {9,10} assess='A'; case {8}

assess='B'; case {7}

assess='C'; case {6}

assess='D';

case {0,1,2,3,4,5} assess='E'; otherwise

assess='Error:wrong data'; end assess

x=input('please import results:'); if x<=100&x>=90 assess='A'; elseif x<=89&x>=80 assess='B'; elseif x<=79&x>=70 assess='C'; elseif x<=69&x>=60 assess='D'; elseif x<=59&x>=0 assess='E';

else assess='Error: wrong data'; end assess

3、x=input('请输入工号:'); y=input('请输入工作时长:'); if y>120

a=84*120+(y-120)*84*0.15;

disp(['您本月工资是: ',num2str(a)]) elseif y<60

b=84*y-700;

disp(['您本月工资是: ',num2str(b)]) else

c=84*y;

disp(['您本月工资是: ',num2str(c)]) end

4、a=fix(rand(1)*89)+10; disp(['a=',num2str(a)]) b=fix(rand(1)*89)+10; disp(['b=',num2str(b)])

x=input('请输入一个四则运算符号','s'); if abs(x)==43

c=a+b;

elseif abs(x)==45 c=a-b;

elseif abs(x)==42 c=a*b;

elseif abs(x)==47 c=a/b;

else c='Error'; end c

5、>> a=fix(rand(5,6)*89)+10;

n=input('请输入一个数(输出结果是一个5*6的矩阵的该行元素):'); if n>5|n<0 b=a(5:5,:);

disp(['输入错误,程序输出最后一行的元素:',num2str(b)]) else

c=a(n:n,:);

disp(['输出结果是:',num2str(c)]) end

MATLAB教程实验报告

实验项目名称 实验四 循环结构程序设计

学生姓名 汪德旺 专业班级 09数教(1)班 学号 0301090131 实验成绩 日期

四. 实验目的和要求

1、掌握利用for语句实现循环结构的方法。 2、掌握利用while语句实现循环结构的方法。 3、熟悉利用向量运算来代替循环操作的方法。 4、填写实验报告,实验报告文件取名为report4.doc。

5、于邮件附件形式将实验报告文件report4.doc 发到邮箱matlab0909@sina.com,邮件主题为班级学号姓名,如:09数教1班15号张三。

二、实验内容 1、根据

?26?1111???????,求?的近似值。当n分别取100、1000、10000时,结果是多122232n2少?

要求:分别用循环结构和向量运算(使用sum函数)来实现。

111???2、根据y?1????,求:

352n?1(1)y<3时的最大n值。

(2)与(1)的n值对应的y值。 3、考虑以下迭代公式:

xn?1?a b?xn其中a、b为正的常数。

(1) 编写程序求迭代的结果,迭代的终止条件为xn?1?xn?10?5,迭代初值x0?1.0,迭代次数

不超过500次。

?b?b2?4a如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1)、(8,3)、

2(10,0.1)时,分别对迭代结果和准确值进行比较。

?f1?1,?f?0,?14、已知??f1?1,??fn?fn?1?2fn?2?fn?3,n?1n?2 n?3n?3求f1?f100中:

(1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。 5、若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如,2?3?1?5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求[2,50]区间内: (1)亲密数对的对数。

(2)与上述亲密数对对应的所有亲密素数之和。 三. 实验结果与分析

(包括运行结果截图、结果分析等) 1、㈠当N等于100时: 1.635 当N等于1000时: 1.6439 当N等于10000时: 1.6448 ㈡请输入一个数值:100

pi =

3.1321

请输入一个数值:1000

pi =

3.1406

请输入一个数值:10000

pi =

3.1415

2、y<3时n的最大值是:56 相应的y值是: 2.9944 3、请输入x的初始值:1.0 请输入常数a的值:1 请输入常数b的值:1 迭代结果是:0.61803 循环次数是7次

如果迭代收敛,准确值是:0.61803 或者是:-1.618 >>

请输入x的初始值:1.0 请输入常数a的值:8 请输入常数b的值:3 迭代结果是:1.7016 循环次数是7次

如果迭代收敛,准确值是:1.7016 或者是:-4.7016 >>

请输入x的初始值:1.0 请输入常数a的值:10 请输入常数b的值:0.1 迭代结果是:3.1127 循环次数是212次

如果迭代收敛,准确值是:3.1127 或者是:-3.2127 4、最大值是:437763282635 最小值是:-304982319319 各数和是:156666511577 正数的个数是:49 负数的个数是:48 零的个数是: 2 5、亲密数对是(2 ,3) 亲密数对是(3 ,4) 亲密数对是(4 ,5) 亲密数对是(5 ,6) 亲密数对是(6 ,7) 亲密数对是(8 ,9) 亲密数对是(9 ,10) 亲密数对是(10 ,11) 亲密数对是(11 ,12) 亲密数对是(13 ,14) 亲密数对是(15 ,16) 亲密数对是(16 ,17) 亲密数对是(19 ,20) 亲密数对是(20 ,21) 亲密数对是(21 ,22) 亲密数对是(24 ,25) 亲密数对是(26 ,27) 亲密数对是(28 ,29) 亲密数对是(30 ,31) 亲密数对是(31 ,32) 亲密数对是(35 ,36) 亲密数对是(38 ,39) 亲密数对是(39 ,40) 亲密数对是(41 ,42) 亲密数对是(44 ,45)

亲密数对是(45 ,46) 亲密数对是(46 ,47) 亲密数对是(48 ,49) 亲密数对是(50 ,51) 四. 心得体会

(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 答:这题目太难了。 【附录----源程序】 1、s1=0; for n=1:100 x=1/(n^2); s1=s1+x; end

disp(['当N等于100时: ',num2str(s1)]) s2=0;

for n=1:1000 x=1/(n^2); s2=s2+x; end

disp(['当N等于1000时: ',num2str(s2)]) s3=0;

for n=1:10000 x=1/(n^2); s3=s3+x; end

disp(['当N等于10000时: ',num2str(s3)]) 2、n=1; y=0;

while (y<3) x=1/(2*n-1); n=1+n; y=y+x; end

disp(['y<3时n的最大值是:',num2str(n-2)]) disp(['相应的y值是: ',num2str(y-x)]) 3、x=input('请输入x的初始值:'); a=input('请输入常数a的值:'); b=input('请输入常数b的值:'); g=a/(b+x); n=0;

while ((abs(x-g))>10^-5) g=a/(b+x); x=a/(b+g); n=n+1;

if n>499 break end end

disp(['迭代结果是:',num2str(x)]) disp(['循环次数是',num2str(n),'次']) r1=(-b+sqrt(b^2+4*a))/2; r2=(-b-sqrt(b^2+4*a))/2;

disp(['如果迭代收敛,准确值是:',num2str(r1),' 或者是:',num2str(r2)]) 4、for n=1:4 if n==1 f1=1; elseif n==2 f2=0; elseif n==3 f3=1; else

a=f3-2*f2+f1; b=a-2*f3+f2; c=b-2*a+f3; d=c-2*b+a;

H=[1,0,1,a,b,c,d]; for m=8:4:99 a=d-2*c+b; b=a-2*d+c; c=b-2*a+d; d=c-2*b+a; H=[H,a,b,c,d]; end

f100=d-2*c+b; end end

max=max(H); min=min(H); sum=sum(H);

disp(['最大值是:',num2str(max)]) disp(['最小值是:',num2str(min)]) disp(['各数和是:',num2str(sum)]) k=0; l=0; p=0; for e=H if e>0

k=k+1;

elseif e<0 l=l+1; else

p=p+1; end end

disp(['正数的个数是:',num2str(k)]) disp(['负数的个数是:',num2str(l)]) disp(['零的个数是: ',num2str(p)]) 5、p=0; l=0; H=[];

for m=2:50 a=m; b=m+1; c=a*b-1; for k=1:c

if rem(c,k)==0 l=l+1; end end if l==2

disp(['亲密数对是','(',num2str(a),' ,',num2str(b),')']) p=p+1; H=[H,c]; end l=0; end

sum=sum(H);

disp(['亲密数对的个数是:',num2str(p)]) disp(['亲密数对的和是: ',num2str(sum)])

=================================================================================== 教师的解答:

实验三 选择结构程序设计的m文件

以下程序仅供参考,请同学们自己编写该题的程序。 1、fdhs.m

x=input('请输入x的值:'); if x<0&x~=-3 y=x*x+x-6;

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

y=x*x-x-1; end

y

2、用if语句cj1.m

x=input('please import results:'); if x<0|x>100

disp('Error: wrong data'); elseif x<=100&x>=90 assess='A' elseif x<=89&x>=80 assess='B' elseif x<=79&x>=70 assess='C' elseif x<=69&x>=60 assess='D' else assess='E' end

用switch语句cj2.m

x=input('please import results:'); switch floor(x/10) case {9,10} assess='A'; case {8}

assess='B'; case {7}

assess='C'; case {6}

assess='D';

case {0,1,2,3,4,5} assess='E'; otherwise

assess='Error:wrong data'; end assess 3、gz.m

number=input('please import the number:'); y=input('please import the time:'); if y>=120

pay=84.*(y-120)*1.15+120*84; elseif y<60

pay=84*y-700; else pay=84*y;

end number pay

4、szys.m

a=fix(rand(1)*89)+10; disp(['a=',num2str(a)]) b=fix(rand(1)*89)+10; disp(['b=',num2str(b)])

x=input('请输入一个四则运算符号','s'); if abs(x)==43 c=a+b;

elseif abs(x)==45 c=a-b;

elseif abs(x)==42 c=a*b;

elseif abs(x)==47 c=a/b;

else c='Error'; end c

5、jzys.m a=rand(5,6)

n=input('请输入行数:'); try

b=a(n,:); catch

b=a(5,:); end b

lasterr

实验四 循环结构程序设计

1、循环方法的m文件pi1.m n=input('请输入n:'); y=0;

for i=1:n

y=y+1/i^2; end

PI=sqrt(6*y)

向量方法的m文件pi2.m n=input('请输入n:'); i=1:n; f=1./i.^2;

y=sum(f); PI=sqrt(6*y)

2、maxn.m y=0;n=0; while y<3 n=n+1;

y=y+1/(2*n-1); end n=n-1

y=y-1/(2*n-1) 3、dd.m

a=input('请输入a:'); b=input('请输入b:');

r1=(-b-sqrt(b^2+4*a))/2;r2=(-b+sqrt(b^2+4*a))/2; x0=1.0;x=1.0; for n=1:500 x0=x;

x=a/(b+x0);

if abs(x-x0)<=1e-5 break end end x

e1=x-r1 e1=x-r2 4、f100.m

f=zeros(1,100);

f(1)=1;f(2)=0;f(3)=1; p=2;n=0;z=1;

sum=2;max=1;min=0; for i=4:100

f(i)=f(i-1)-2*f(i-2)+f(i-3); sum=sum+f(i); if f(i)>0 p=p+1; elseif f(i)<0 n=n+1; else

z=z+1; end

if f(i)>max max=f(i); elseif f(i)

min=f(i); end end sum max min p n z

5、qmss.m sum=0;n=0; for i=2:50

m=i*(i+1)-1; k=sqrt(m); flag=1; for j=2:k

if rem(m,j)==0 flag=0; end end

if flag~=0 n=n+1;

sum=sum+m; end end n sum

===================================================================================

MATLAB教程实验报告

实验项目名称 实验五 函数文件

学生姓名 专业班级 学号 实验成绩 日期

五. 实验目的和要求

1、理解函数文件的概念。

2、掌握定义和调用MATLAB函数的方法。

3、填写实验报告,实验报告文件取名为report5.doc。

4、于邮件附件形式将实验报告文件report5.doc 发到邮箱matlab0909@sina.com,邮件主题为班级学号姓名,如:09数教1班15号张三。

二、实验内容

1、定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 2、一个物理系统可用下列方程组来表示:

?m1cos??msin??1?0??0?m10m20?sin?cos??sin??cos?0??a1??0??a??mg?0???2???1? 0??N1??0??????1??N2??m2g?从键盘输入m1、m2和?的值,求a1、a2、N1和N2的值。其中g取9.8,输入?时以角度为单位。 要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。

3、一个自然数是素数,且它的数字位置经过任意对换后仍是素数,则称是绝对素数。例如13是绝对素数。试求所有两位绝对素数。 要求:定义一个判断素数的函数文件。 4、设f(x)?11?,编写一个MATLAB函数文件fx.m,使得调用f(x)时,x24(x?2)?0.1(x?3)?0.01可用矩阵代人,得出的f(x)为同阶矩阵。 5、已知y?f(40)

f(30)?f(20)(1)当f(n)?n?10ln(n2?5)时,求y的值。

???n?(n?1)(2)当f(n)?1?2?2?3?3?4??时,求y的值。

三. 实验结果与分析

(包括运行结果截图、结果分析等) 四. 心得体会

(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】 1、clear all

a=input('请输入一个复数:'); [e,l,s,c]=fushu(a); 2、clear all

m1=input('请输入m1的值:'); m2=input('请输入m2的值:'); m3=input('请输入θ的值:'); J=jiefangcheng(m1,m2,m3); 3、clear all for n=10:99

a=sushu(n); end

4、clear all

y=input('请输入一个数或矩阵:'); disp('输入的数或矩阵x是:') disp(y) L=fx(y);

5、clear all for n=20:10:40 if n==20;

[f1,f2]=f(n); a=f1; b=f2;

elseif n==30;

[f1,f2]=f(n); c=f1; d=f2; else

[f1,f2]=f(n); e=f1; f=f2; end end

y1=e/(a+c); y2=f/(b+d);

disp(['(1) y=',num2str(y1)]) disp(['(2) y=',num2str(y2)])

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

Top