n=a(1,i)
end
end
3-8当n分别取100、1000、10000时,求下列各式的值:
(1)1/1^2+1/2^2+1/3^2+···+1/n^2+···(=pi^2/6)
程序如下:
clearall
n=1:
100;
b=1./(n.*n);
c=sum(b);
disp(['当n等于100时:
',num2str(c)])
n=1:
1000;
b=1./(n.*n);
c=sum(b);
disp(['当n等于1000时:
',num2str(c)])
n=1:
10000;
b=1./(n.*n);
c=sum(b);
disp(['当n等于10000时:
',num2str(c)])
结果:
>>当n等于100时:
1.635
当n等于1000时:
1.6439
当n等于10000时:
1.6448
(2)1-1/3+1/5-1/7+···(=pi/4)
程序如下:
clearall
n=1:
100;
b=1./(4.*n-3)-1./(4.*n-1);
c=sum(b);
disp(['当n等于100时:
',num2str(c)])
n=1:
1000;
b=1./(4.*n-3)-1./(4.*n-1);
c=sum(b);
disp(['当n等于1000时:
',num2str(c)])
n=1:
10000;
b=1./(4.*n-3)-1./(4.*n-1);
c=sum(b);
disp(['当n等于10000时:
',num2str(c)])
结果:
>>当n等于100时:
0.78415
当n等于1000时:
0.78527
当n等于10000时:
0.78539
(3)1/4+1/16+1/64+···+1/4^n+···(=1/3)
程序如下:
clearall
n=1:
100;
b=1./(4.^n);
c=sum(b);
disp(['当n等于100时:
',num2str(c)])
n=1:
1000;
b=1./(4.^n);
c=sum(b);
disp(['当n等于1000时:
',num2str(c)])
n=1:
10000;
b=1./(4.^n);
c=sum(b);
disp(['当n等于10000时:
',num2str(c)])
结果:
>>当n等于100时:
0.33333
当n等于1000时:
0.33333
当n等于10000时:
0.33333
(4)···((2n)(2n)/(2n-1)(2n+1))···(=pi/2)
程序如下:
clearall
n=1:
100;
b=((2*n).*(2*n))./((2*n-1).*(2*n+1));
c=prod(b);
disp(['当n等于100时:
',num2str(c)])
n=1:
1000;
b=((2*n).*(2*n))./((2*n-1).*(2*n+1));
c=prod(b);
disp(['当n等于1000时:
',num2str(c)])
n=1:
10000;
b=((2*n).*(2*n))./((2*n-1).*(2*n+1));
c=prod(b);
disp(['当n等于10000时:
',num2str(c)])
结果:
>>当n等于100时:
1.5669
当n等于1000时:
1.5704
当n等于10000时:
1.5708
3-9若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。
例如,2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。
求[2,50]区间内:
(1)亲密数对的对数。
(2)与上述亲密数对对应的所有亲密素数之和。
程序如下:
clearall
p=0;
l=0;
H=[];
form=2:
49
a=m;
b=m+1;
c=a*b-1;
fork=1:
c
ifrem(c,k)==0
l=l+1;
end
end
ifl==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)])
3-10根据y=1+1/3+1/5+···+1/(2n-1),求:
(1)y<3时的最大n值。
(2)与
(1)的n值对应的y值。
程序如下:
sum=0;
forn=1:
100
sum=sum+1/(2*n-1);
ifsum>3&(sum-1/(2*n-1))<3
disp(n-1)
disp(sum-1/(2*n-1))
end
end
方法2
clearall
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-12编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。
程序如下:
mul函数%用于求两个矩阵的乘积和点乘
function[x,y]=mul(a,b)
x=a*b;
y=a.*b;
main%主函数
a=input('请输入一个矩阵:
');
b=input('请再输入一个矩阵:
(注意:
两矩阵要可以相乘)');
[x,y]=mull(a,b);
disp('这两个矩阵的乘积为:
');
x
disp('这两个矩阵的点乘为:
');
y
3-14先用函数的递归调用定义一个函数文件求∑I,然后调用该函数文件求∑k+∑k^2+∑1/k
程序如下:
定义一个求和函数:
functionsum=add(n,m)
ifn<1
sum=0;
else
sum=n^m+add(n-1,m);
end
主函数:
clearall
y=add(100,1)+add(50,2)+add(10,-1);
disp(y)