Matlab实验报告 修复的Word格式文档下载.docx
《Matlab实验报告 修复的Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Matlab实验报告 修复的Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
1、每门课程考试阅卷完毕,任课教师都要对各班的考试成绩进行统计,统计内容包括:
全班人数,总得分,平均得分,不及格的人数及90分(包括90分)以上的人数.请编制程序解决这一问题,并自给一组数据验证程序的正确性.要求:
使用者在提示下通过键盘输入学生成绩,计算机自动处理后,显示需要的结果.
2、根据我国个人所得税计算方法,编制程序,要求:
使用者在系统提示下通过键盘输入月工资薪金收入总数,计算机则在屏幕上显示个人所得税额,界面友好,方便使用.
个人所得税计算方法:
月个人所得税=(月工资薪金收入-2000)*适用税率-速算扣除数
附表:
个人所得税税率表(工资、薪金所得适用)
3、求[2,999]中同时满足下列条件的数
(1)该数各位数字之和为奇数
(2)该数是素数
4、若一个三位自然数的各位数字的立方和等于该数本身,则称该自然数为水仙花数,例如,153=1³
+5³
+3³
,所以153就是一个水仙花数,编程计算出所有的水仙花数
5、任取一个正整数,如果是偶数,用2除,如果是奇数,用3除再加1,反复这个过程,直到所得到的数为1。
6、编写程序,从键盘提示输入n个数,将它们按从小到大排列。
7、验证“哥德巴赫猜想”,即:
任何一个正偶数(大于等于6)均可表示为两个质数的和。
要求编写程序,输入一个正偶数,返回两个质数的和。
三、实验过程及结果分析
(1)使用Matlab求解简单问题
1.symsx
fx=(cos(x^0.5)^(pi/x))
limit(fx,x,0,'
right'
)
2.symsx
y=sym('
cos(x^2)*(sin(1/x))^2'
dy=diff(y)
3.symsx
f=sym('
3*x^6+12*x^5+4*x^4+7*x^3+8*x+1'
a=solve(f)
4.symsxx1y1minx2y2max
f=inline('
(sin(x))^3+(cos(x))^3'
[x1,y1]=fminbnd(f,pi/6,3*pi/4)
min=y1
-(sin(x))^3-(cos(x))^3'
[x2,y2]=fminbnd(f,pi/6,3*pi/4)
max=-1*y2
(2)使用Matlab绘制下列曲线
1.symst;
t=-10:
0.1:
10;
x=2*t.^2./(1+t.^2.);
y=2*t.^3./(1+t.^2.);
plot(x,y)
2.x=-2:
0.01:
2;
f=x.^2.*sin(x.^2-x-2)
df=2*x.*sin(x.^2.-x-2)+x.^2.*cos(x.^2-x-2).*(2*x-1);
df2=2*sin(x.^2.-x-2)+4*x.*cos(x.^2-x-2).*(2*x-1)
-x.^2.*sin(x.^2-x-2).*(2*x-1).^2+2*x.^2.*cos(x.^2-x-2);
plot(x,f,'
k'
x,df,'
b'
x,df2,'
r'
3.x=0.001:
0.0001:
0.1;
y=1./x.*sin(1./x);
plot(x,y)
4.x=-2:
y=x;
[x,y]=meshgrid(x,y);
z=x.*exp(-(x.^2+y.^2));
mesh(z);
1.a=input('
请以数组形式([数据])输入成绩'
);
[m,n]=size(a);
c=0;
d=0;
s=0;
fori=1:
n
ifa(i)<
60
c=c+1;
elseifa(i)>
=90
d=d+1;
end
s=s+a(i);
A=s/n;
end
fprintf('
全班共%.0f人,不及格%2.0f人,90分上(含90分)%2.0f人'
n,c,d)
平均%2.3f\n分'
A)
2.a=input('
请输入月薪金总数'
ifa<
=200
b=0;
else
a=a-2000;
ifa<
=500
b=0.05*a;
elseifa<
=2000
b=0.1*a-25;
=5000
b=0.15*a-125;
=20000
b=0.2*a-375;
=40000
b=0.25*a-1375;
=60000
b=0.3*a-3375;
=80000
b=0.35*a-6375;
=100000anda>
80000
b=0.4*a-10375;
elseifa>
100000
b=0.45*a-15375;
end
end
个人所得税额为%.0f元'
b)
3.fori=2:
999
a=fix(i/100);
%百位数
b=fix((i-100*a)/10);
%十位数
c=i-100*a-10*b;
%个位数
x=a+b+c;
gudge=1;
form=2:
i/2;
ifmod(i,m)==0;
gudge=0;
ifgudge==1&
mod(x,2)~=0
i
4.fori=100:
999;
b=mod(i,100);
c=mod(i,10);
b=(b-c)/10;
ifa^3+b^3+c^3==i;
5.a=input('
请以输入一个正整数'
whilea~=1;
ifmod(2,a)==0;
a=a/2;
else
a=a/3+1;
fprintf('
过程数=%.5f'
a);
6.n=input('
总共有多少个数n='
a=input('
请以数组形式[数据以空格隔开]输入这些数:
'
fori=1:
n;
forj=n:
-1:
i+1;
ifa(j)<
a(j-1);
temp=a(j-1);
a(j-1)=a(j);
a(j)=temp;
a
7.n=input('
请输入一个偶数:
ifmod(n,2)~=0;
disp('
哈哈,连奇数偶数都分不清'
x=0;
fori=2:
flag=0;
i-1;
flag=1;
ifflag==0;
x=x+1;
a(x)=i;
forl=1:
x;
forq=l:
d=a(l)+a(q);
ifn==d;
num1=a(l);
num2=a(q);
%.f+%.f=%.f'
num1,num2,n);
return
四、实验总结与体会
1、
(1)通过使用Matlab,更加便捷的计算出很多复杂的问题,使很多原来手算难以处理的大计算量问题轻松解决。
同时,在编程时,它的语法也相对简单明了,很容易就可以把自己所想到的算法转化成可以运行的M文件。
(2)很多细节都需要注意,如文件名的选取,在不需要显示的语句后加“;
”。
。
细节注意到了,才能保证结果是自己想要的。
(3)在编写的过程中,需要根据运行后提示的错误进行修改,唯此才能获得最终正确的程序。
而且,可以通过局部逐渐测试来检验程序的正误。
(4)Matlab绘图时需将函数转化成相应的矩阵,因为电脑绘制的的是有限个点。
(5)Matlab作为一个甚是强大的软件,这学期我们只对它说了一声:
“Hello!
”,而在掌握了一些基本之后,Matlab中可探索的空间显得愈发广阔。
(刘越)
2、
俗话说“工欲善其事,必先利其器”。
在使用Matlab的过程中,我体会到了许多平常难以解决的问题,通过Matlab这款软件,都得以轻松的解决。
一方面,Matlab的语言比较简洁明了,初学者可以比较容易入门。
另一方面,Matlab在解决一些数学问题上确实很方便实用,让我受益匪浅。
总结这几节课的学习,我得到了以下几点心得:
(1)多动手写程序;
(2)善于利用help;
(3)多向老师问不懂的问题或与别人互相交流学习。
(陈东升)