《数学实验》课程实验报告.docx
《《数学实验》课程实验报告.docx》由会员分享,可在线阅读,更多相关《《数学实验》课程实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
![《数学实验》课程实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/6/4fbbf5f0-da8f-44e2-b18d-8adc2604da16/4fbbf5f0-da8f-44e2-b18d-8adc2604da161.gif)
《数学实验》课程实验报告
《数学实验》课程实验报告
课程名称
班级
实验日期
姓名
学号
实验成绩
实验名称
实验二Matlab循环结构程序设计
实
验
目
的
及
要
求
掌握利用for语句实现选择结构的方法
掌握利用while语句实现选择结构的方法
实
验
环
境
Matlab软件
实
验
内
容
1.根据
,求π的近似值。
当n分别取100、1000、10000时,结果是多少?
要求:
分别用循环结构和向量运算(使用sum函数)来实现。
2.根据
,求:
(1)y<3时的最大n值。
(2)与
(1)的n值对应的y值。
3.考虑以下迭代公式:
其中a、b为正的常数。
(1)编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|≤10-5,迭代初值x0=1.0,迭代次数不超过500次。
(2)如果迭代过程收敛于r,那么r的准确值是
,当(a,b)的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。
4.已知
求f1~f100中:
(1)最大值、最小值、各数之和。
(2)正数、零、负数的个数。
5.一个3位整数各位数字的立方和等于该数本身则称该数为水仙花数,请输出100—999之间的全部水仙花数。
6.若一个数等于他的各个真因子之和,则称该数为完数,例如6=1+2+3,所以6为完数,请[1,500]之间的所有完数。
7.若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。
例如,2×3-1=5,由于5是素数,所以2和3是亲密数,5是亲密素数。
求[2,50]区间内:
(1)亲密数对的对数。
(2)与上述亲密数对对应的所有亲密素数之和。
8.从键盘输入若干个数,当输入为0时结束输入,求这些数的和与他们的平均值。
实
验
过
程
和
程
序
1、
functiony6=fun6(x)
k=0;
fori=1:
x
k=k+(6*(1/i^2));
end
y6=sqrt(k);
向量运算:
n=10000
x=1./(1:
n).^2;
s=sum(x);
pi=sqrt(6*s)
n=100
pi=3.1321
n=1000
pi=3.1406
n=10000
pi=3.1415
2,
(1)
y=0;
forn=1:
1000
y=y+1/(2*n-1);
ify>3
break
end
end
n-1
答案:
ans=
56
(2)
y=0;
forn=1:
56
y=y+1/(2*n-1);
end
y
答案:
y=
2.9944
3,
(1)
a=input('输入整数a=');
b=input('输入整数b=');
x=1.0;
n=0;
whileabs(x-a/(b+x))>=10^-5
ifn<=500
x=a/(b+x);
n=n+1;
end
end
x
答案:
输入整数a=2
输入整数b=5
x=
0.3723
(2)
a=input('输入整数a=');
b=input('输入整数b=');
x=1.0;
n=0;
whileabs(x-a/(b+x))>=10^-5
ifn<=500
x=a/(b+x);
n=n+1;
end
end
x
r
(1)=(-b+sqrt(b^2+4*a))/2
r
(2)=(-b-sqrt(b^2+4*a))/2
s=r-x
答案:
输入整数a=1
输入整数b=1
x=0.6180
r=0.6180
r=0.6180-1.6180
s=-0.0000-2.2361
输入整数a=8
输入整数b=3
x=1.7016
r=1.7016-1.6180
r=1.7016-4.7016
s=0.0000-6.4031
输入整数a=10
输入整数b=0.1
x=3.1127
r=3.1127-4.7016
r=3.1127-3.2127
s=-0.0000-6.3254
4,
f
(1)=1;
f
(2)=0;
f(3)=1;
forn=4:
100
f(n)=f(n-1)-2*f(n-2)+f(n-3);
end
disp(['max=',num2str(max(f))])
disp(['min=',num2str(min(f))])
disp(['sum=',num2str(sum(f))])
disp(['正数的个数a=',num2str(length(find(f>0)))])
disp(['零的个数b=',num2str(length(find(f==0)))])
disp(['负数的个数c=',num2str(length(find(f<0)))])
(1)
答案:
max=4.377633e+011
min=-8.994121e+011
sum=-7.427456e+011
(2)
答案:
正数的个数a=49
零的个数b=2
负数的个数c=49
5,
s=[];
fori=100:
999
a=floor(i/100);
b=floor((i-100*a)/10);
c=mod(i,10);
ifi==a^3+b^3+c^3
s=[s,i];
end
end
s
水仙花数:
s=
153370371407
6,
disp('完数有:
');
forn=1:
500
sum=0;
fori=1:
n/2
ifrem(n,i)==0
sum=sum+i;
end
end
ifsum==n
disp(n);
end
end
答案:
完数有:
6
28
496
7,
num=0;
sum=0;
fori=2:
50
m=i*(i+1)-1;
forn=2:
m
ifrem(m,n)~=0
continue
end
break
end
n;
ifn==m
num=num+1;
sum=sum+m;
end
end
num
sum
(1)
亲密数对的对数:
num=
29
(2)
所有亲密素数之和:
sum=
23615
8,
num=0;
sum=0;
n=input('输入一个数,当输入为0时结束输入');
whilen~=0
sum=sum+n;
num=num+1;
n=input('输入一个数:
');
end
sum
ave=sum/num
答案:
输入一个数,当输入为0时结束输入18
输入一个数:
36
输入一个数:
49
输入一个数:
57
输入一个数:
0
sum=
160
ave=
40