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;