一、实验内容
1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为
奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 21
3105168421 63105168421
运行下面的程序,按程序提示输入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: a=0;
i22. 编程求满足i1100000的最小m值。
m i=1;
while (a<100000) a=a+pow2(i); i=i+1; end m=i-1
y的值。
function [y]=myfun1(x)
3. 编写一个函数,计算下面函数的值,给出x的值,调用该函数后,返回
sinx,y(x)x,x6,选择一些数据测试你编写的函数。
x00x3x3
function y=myfun1(x) if x<=0
y=sin(x); elseif x>0&x<=3 y=x; elseif x>3 y=-x+6; end
运行结果:
4. 用如下迭代公式求
a,迭代的终止条件为
xn1xn105,迭代初值
x01.0,迭代次数不超过100次。分别对迭代结果和准确值进行比较,并统计迭代次数。
迭代公式:xn1xn1a 22xn1function [x, n]=sqrt_a(a)
x=1.0;
for k=1:100 m=x;
x=x/2+a/(2*x);
if abs(x-m)<=10^(-5) break end end x; n=k;
s=(x-sqrt(a)); if abs(s)<=10^(-5) disp('正确'); else
disp('错误'); end
下面调用举例: 运行结果:
>> [x ,n]=sqrt_a(3) 正确 x =
1.7321 n = 5
>> [x, n]=sqrt_a(17) 正确 x =
4.1231 n = 6
>> [x,n]=sqrt_a(113) 正确 x =
10.6301 n = 8
5.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。
程序设计:
function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end
运行结果: >> num(5i) e =
0.2837 - 0.9589i ln =
1.6094 + 1.5708i s =
0 +74.2032i c =
74.2099 ans =
0.2837 - 0.9589i 6. 设 f(x)=
1(x2)20.11,编写一个MATLAB函数文件fx.m,
0.01(x3)4使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m:
function A=fx(x)
A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end
调用fx.m的命令文件:
>> A=fx([1 2;2 3;4 3])
运行结果:
A =
0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 二、实验小结
指导老师: _________________
实验时间和地点:______________
实验成绩:____________________
因篇幅问题不能全部显示,请点此查看更多更全内容