1、Matlab数学实验报告数学实验报告姓名:班级:学号:第一次实验任务 过程: a=1+3i; b=2-i;结果: a+b =3.0000 + 2.0000ia-b =-1.0000 + 4.0000ia*b = 5.0000 + 5.0000ia/b = -0.2000 + 1.4000i过程: x=-4.5*pi/180; y=7.6*pi/180;结果: sin(abs(x)+y)/sqrt(cos(abs(x+y) =0.2098心得:对于matlab中的角度计算应转为弧度。(1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4
2、=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4)结果:(2)过程: subplot(2,2,1) plot(x,y1) subplot(2,2,2) plot(x,y2) subplot(2,2,3) plot(x,y3) subplot(2.2.4) subplot(2,2,4) plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(
3、2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4) A的行列式,(5)判断A是否可逆,若可逆,计算 A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。过程: A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);结果: (1) A*B = 22 28 49 64 76 100(2) C=B.2C = 1 4 9 16 25 36(3) sin(B)ans = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794(4) a=det(A)a = 0(5) 由det(A
4、)存在,且det(A)= 0,故A不可逆(6) X无解(7) l=A(2,1),l1=l+1,m=A(2,2),m1=m+1,n=A(2,3),n1=n+1D=A,D(2,1)=l1,D(2,2)=m1,D(2,3)=n1D = 1 2 3 5 6 7 7 8 9心得:熟练掌握matlab中对数组的操作方法尤为重要,其中,除了要牢记一些十分方便的函数外,应注意对数组的每一个元素进行操作时,应在运算符前加“.”号,如. .* 等。6、设y=(x2 + ex cosx+x)/x,分别计算x=1, 3, 5, 7.4时y的值。其中x表示x的取整函数。过程:x=1,y=(x2+exp(x)*cos(x
5、)+fix(x)/x结果:x = 1y = 3.4687x = 3y = -2.6282x = 5y = 14.4198x = 7.4y = 105.29957、已知某地区1-12月份的平均气温为5,8,13,20,25,28,31,33,27,24,19,10,请绘图表示。过程:: T=5,8,13,20,25,28,31,33,27,24,19,10;bar(T)结果: 第2次实验任务1.某大学本科生就业情况如下:458人考入研究生,60人签到外企或合资企业,184人签到国营大企业,87人签到私人企业,13人自主创业,画出饼图表示之;过程:x=458 60 184 87 13;pie3(x
6、)答案:2.求极限 过程:syms x a;limit(x-a)/(x+a)x,x,inf)答案:ans=exp(-2*a)3.求极限过程: syms x; limit(tan(x)(1/log10(x),x,0,right)答案:ans=exp(1)4.设过程:syms x q t;q = limit (1+1/x)(2*x),x,inf);df = diff (qt,t)答案:df = qt*log(q)5.展开多项式;过程:syms a b;F=(a+b)3+(b-1)2+a+2*b;expand(F)答案: ans = a3+3*a2*b+3*a*b2+b3+b2+1+a6.分解因式过
7、程:syms x; F=x5+3*x4+2*x2+x-1;factor(F)答案:ans= x5+3*x4+2*x2+x-17.求方程的根 过程:syms x; C=solve(x3-2*x+1=0)答案C= 1 1/2*5(1/2)-1/2 -1/2-1/2*5(1/2)8.过程: syms x; f=sqrt(x+sqrt(x+sqrt(x); df=diff(f)答案:df= 1/2/(x+(x+x(1/2)(1/2)(1/2)*(1+1/2/(x+x(1/2)(1/2)*(1+1/2/x(1/2)9. 求不定积分过程: syms x; F=1/(sqrt(2*x+3)+sqrt(2*x
8、-1); Nf=int(F,x,)答案:Nf = -1/12*(2*x-1)(3/2)+1/12*(2*x+3)(3/2) 过程: syms x; F=1/(1+cos(x);Nf=int(F)答案:Nf = tan(1/2*x)10 求定积分过程:syms x; F=1/(x*sqrt(log(x)*(1-log(x); Nf=int(F,x,exp(1/2),exp(3/4)答案:ans=asin(2*log(595882530372511)-96*log(2)-1)-asin(2*log(1856295125090727)-100*log(2)-1)11. 解方程组 过程:syms x
9、y;eq1=sym(2*x+y=8);eq2=sym(x-3*y=1);x,y=solve(eq1,eq2)答案:x =25/7y = 6/712. 求和过程:syms k; symsum(1/k2,k,1,20)答案:ans = 17299975731542641/1083847519827072013. 过程:syms x; taylor(cos(2*x),x,15,pi/6)答案:ans= 1/2-3(1/2)*(x-1/6*pi)-(x-1/6*pi)2+2/3*3(1/2)*(x-1/6*pi)3+1/3*(x-1/6*pi)4-2/15*3(1/2)*(x-1/6*pi)5-2/4
10、5*(x-1/6*pi)6+4/315*3(1/2)*(x-1/6*pi)7+1/315*(x-1/6*pi)8-2/2835*3(1/2)*(x-1/6*pi)9-2/14175*(x-1/6*pi)10+4/155925*3(1/2)*(x-1/6*pi)11+2/467775*(x-1/6*pi)12-4/6081075*3(1/2)*(x-1/6*pi)13-4/42567525*(x-1/6*pi)1414. 编写猜数游戏程序:首先由计算机随机产生一个 1,100 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 “Hi
11、gh” ,小于则显示 “ Low ” ,等于则显示 “You won!”,同时退出游戏。用户最多有 7 次机会。过程:a=fix(rand(1)*100);for i=1:1:7x=input(please input the number you guess);if xa fprintf(high);continue;end if x心得体会:(1)灵活运用符号方程和各类求解函数对于我们高数的学习和数学问题的验证将会产生很大帮助。(2)应熟练掌握生成某个范围内随机整数等常用技巧。(3)应正确区分循环中的continue与break的作用,即continue是跳过当次循环,而break是跳出整
12、个循环。第三次Matlab上机实验报告第一题:每门课程考试阅卷完毕,任课教师都要对各班的考试成绩进行统计,统计内容包括:全班人数,总得分,平均得分,不及格的人数及90分(包括90分)以上的人数.请编制程序解决这一问题,并自给一组数据验证程序的正确性.要求:使用者在提示下通过键盘输入学生成绩,计算机自动处理后,显示需要的结果.问题分析及程序:1分析:运用循环来对数组中的每个数的值进行判定,从而达到统计各项人数的目的。 2程序:a=input(请输入数组学生成绩an=); %输入学生成绩到数组中 n=length(a);s=0;p=0;q=0;fori=1:n %在循环中进行统计s=a(i)+s;
13、ifa(i)=90p=p+1;elseifa(i)60q=q+1;endendr=s/n;fprintf(全班人数%.0f总得分%.0f平均得分%.2f不及格的人数%.0f90分(包括90分)以上的人数%.0fn,n,s,r,q,p); %输出运行结果:请输入数组学生成绩 an=87 98 67 98 90 70 60 66全班人数8 总得分636 平均得分79.50 不及格的人数0 90分(包括90分)以上的人数3结果分析:灵活运用循环语句,选择语句等基本语句,能很方便地在程序中实现很多基本功能。第二题: 1 习题1:编程计算小于1000的水仙花数。 问题分析及程序:分析:水仙花数指一个 n
14、 位数 ( n3 ),它的每个位上的数字的 n 次幂之和等于它本身。所以在外层设置1到1000的循环,内层对每一个数是否满足水仙花数的条件进行判断并输出。程序:i=10;g=0;s=0;b=0;fprintf(1到1000的水仙花数有:n)while ia fprintf(high );continue; end If xafprintf(low );continue;endif x=a fprintf(you won);break; endend 结果:please input the number you guess50lowplease input the number you gues
15、s75high please input the number you guess63high please input the number you guess56low please input the number you guess60you won结果分析:用二分法能有较高概率猜中结果。第四题: Fibonacci数组元素满足Fibonacci规则: (1)用循环语句形成前20个分量的数组;(2)求该数组中第一个大于10000的数.问题分析及程序: 分析:分别用for循环和while循环能解决以上两个问题。 程序:(1)a(1)=1;a(2)=1for i=3:20 a(i)=a(i
16、-1)+a(i-2);end结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 (2) a(1)=1;a(2)=1;i=3;while a(i-1)10000 fprintf(第一个大于10000的数是:%d,a(i) end i=i+1;end结果:第一个大于10000的数是:10946第五题:5.(1)编写一个function函数,调用该函数,可 以求一组数的最大值及最小值. (2)通过键盘输入一组数,利用(1)编写的function函数,得出最大最小数. 问题分析:在函数中利用循环求得最大最小值并返
17、回这两个值。程序:(1)function y1 y2 = daxiao(x)n=length(x);y1=x(1);y2=x(1);for i=2:n if x(i)x(i-1) y1=x(i); else y2=x(i); endend (2)x=input(请输入这组数的值 xn=);y1 y2=daxiao(x);fprintf(最大值是:%.0f,最小值是:%.0f,y1,y2)结果:请输入这组数的值 xn=34 45 56 67 89 99 1最大值是:99,最小值是:1 结果分析:函数中的应给存放最值的变量存初值,否则不会得到预期的结果。心得体会:(1)matlab中的语句与C语言
18、中的语句结构具有很高的相似性,熟练掌握循环结构,选择结构等将会对我们matlab程序的编写产生很大帮助。(2)函数的返回值可以是也可以是多个值。当函数返回的是多个值时,应注意用多个变量进行接收,否则得不到预期的结果。(3)应熟练掌握MATLAB程序中的几个输入输出函数,以及它们的用法,比如fprintf(不要误写成print,并且在使用时,应在单引号内指明变量输出的格式与类型)与input。总的感悟通过本学期的Matlab课程的学习,我对Matlab有了全新的认识,在高等数学上某些问题的解决与验证也有了新的工具,程序的编写能力也有所提高。相信在未来我能有效得利用好Matlab这款强大的工具,为我的学习提供帮助。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2