Matlab数学实验报告.docx

上传人:b****1 文档编号:14890520 上传时间:2023-06-28 格式:DOCX 页数:18 大小:93.64KB
下载 相关 举报
Matlab数学实验报告.docx_第1页
第1页 / 共18页
Matlab数学实验报告.docx_第2页
第2页 / 共18页
Matlab数学实验报告.docx_第3页
第3页 / 共18页
Matlab数学实验报告.docx_第4页
第4页 / 共18页
Matlab数学实验报告.docx_第5页
第5页 / 共18页
Matlab数学实验报告.docx_第6页
第6页 / 共18页
Matlab数学实验报告.docx_第7页
第7页 / 共18页
Matlab数学实验报告.docx_第8页
第8页 / 共18页
Matlab数学实验报告.docx_第9页
第9页 / 共18页
Matlab数学实验报告.docx_第10页
第10页 / 共18页
Matlab数学实验报告.docx_第11页
第11页 / 共18页
Matlab数学实验报告.docx_第12页
第12页 / 共18页
Matlab数学实验报告.docx_第13页
第13页 / 共18页
Matlab数学实验报告.docx_第14页
第14页 / 共18页
Matlab数学实验报告.docx_第15页
第15页 / 共18页
Matlab数学实验报告.docx_第16页
第16页 / 共18页
Matlab数学实验报告.docx_第17页
第17页 / 共18页
Matlab数学实验报告.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Matlab数学实验报告.docx

《Matlab数学实验报告.docx》由会员分享,可在线阅读,更多相关《Matlab数学实验报告.docx(18页珍藏版)》请在冰点文库上搜索。

Matlab数学实验报告.docx

Matlab数学实验报告

 

数学实验报告

 

姓名:

班级:

学号:

 

第一次实验任务

过程:

a=1+3i;b=2-i;

结果:

a+b=3.0000+2.0000i

a-b=-1.0000+4.0000i

a*b=5.0000+5.0000i

a/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=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能够实现在同一页面输出多个坐标系的图像,应注意将它与holdon进行区别,后者为在同一坐标系中划出多条曲线。

5、随机生成一个3x3矩阵A及3x2矩阵B,计算

(1)AB,

(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=

2228

4964

76100

(2)C=B.^2

C=

14

916

2536

(3)sin(B)

ans=

0.84150.9093

0.1411-0.7568

-0.9589-0.2794

(4)a=det(A)

a=0

(5)由det(A)存在,且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+1

D=A,D(2,1)=l1,D(2,2)=m1,D(2,3)=n1

D=

123

567

789

心得:

熟练掌握matlab中对数组的操作方法尤为重要,其中,除了要牢记一些十分方便的函数外,应注意对数组的每一个元素进行操作时,应在运算符前加“.”号,如.^.*等。

6、设y=(x2+excosx+[x])/x,分别计算x=1,3,5,7.4时y的值。

其中[x]表示x的取整函数。

过程:

x=1,y=(x^2+exp(x)*cos(x)+fix(x))/x

结果:

x=1

y=3.4687

x=3

y=-2.6282

x=5

y=14.4198

x=7.4

y=105.2995

7、已知某地区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=[458601848713];

pie3(x)

答案:

2.求极限

过程:

symsxa;

limit('((x-a)/(x+a))^x',x,inf)

答案:

ans=exp(-2*a)

3.求极限

过程:

>>symsx;

>>limit('tan(x)^(1/log10(x))',x,0,'right')

答案:

ans=exp

(1)

 

4.设

过程:

symsxqt;

q=limit('(1+1/x)^(2*x)',x,inf);

df=diff('q^t',t)

答案:

df=q^t*log(q)

 

5.展开多项式

过程:

symsab;

F=(a+b)^3+(b-1)^2+a+2*b;

expand(F)

答案:

ans=a^3+3*a^2*b+3*a*b^2+b^3+b^2+1+a

6.分解因式

过程:

symsx;

F=x^5+3*x^4+2*x^2+x-1;

factor(F)

答案:

ans=x^5+3*x^4+2*x^2+x-1

7.求方程

的根

过程:

symsx;

C=solve(‘x^3-2*x+1=0’)

答案C=

1

1/2*5^(1/2)-1/2

-1/2-1/2*5^(1/2)

8.

过程:

>>symsx;

>>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.求不定积分

过程:

symsx;

F=1/(sqrt(2*x+3)+sqrt(2*x-1));

Nf=int(F,x,)

答案:

Nf=-1/12*(2*x-1)^(3/2)+1/12*(2*x+3)^(3/2)

 

过程:

symsx;

F=1/(1+cos(x));

Nf=int(F)

答案:

Nf=tan(1/2*x)

10求定积分

过程:

symsx;

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.解方程组

过程:

symsxy;

eq1=sym(‘2*x+y=8’);

eq2=sym(‘x-3*y=1’);

[x,y]=solve(eq1,eq2)

答案:

x=25/7

y=6/7

12.求和

过程:

symsk;

symsum(1/k^2,k,1,20)

答案:

ans=17299975731542641/10838475198270720

13.

过程:

symsx;

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/45*(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)^14

 

14.编写猜数游戏程序:

首先由计算机随机产生一个[1,100]之间的一个整数,然后由用户猜测所产生的这个数。

根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“Youwon!

”,同时退出游戏。

用户最多有7次机会。

过程:

a=fix(rand

(1)*100);

fori=1:

1:

7

x=input('pleaseinputthenumberyouguess');

ifx>a

fprintf('high');

continue;

end

ifx

fprintf('low');

continue;

end

ifx==a

fprintf('youwon');

break;

end

end

结果:

pleaseinputthenumberyouguess50

lowpleaseinputthenumberyouguess75

highpleaseinputthenumberyouguess63

highpleaseinputthenumberyouguess56

lowpleaseinputthenumberyouguess60

youwon>>

 

心得体会:

(1)灵活运用符号方程和各类求解函数对于我们高数的学习和数学问题的验证将会产生很大帮助。

(2)应熟练掌握生成某个范围内随机整数等常用技巧。

(3)应正确区分循环中的continue与break的作用,即continue是跳过当次循环,而break是跳出整个循环。

 

第三次Matlab上机实验报告

第一题:

每门课程考试阅卷完毕,任课教师都要对各班的考试成绩进行统计,统计内容包括:

全班人数,总得分,平均得分,不及格的人数及90分(包括90分)以上的人数.请编制程序解决这一问题,并自给一组数据验证程序的正确性.要求:

使用者在提示下通过键盘输入学生成绩,计算机自动处理后,显示需要的结果.

问题分析及程序:

1分析:

运用循环来对数组中的每个数的值进行判定,从而达到统计各项人数的目的。

2程序:

a=input('请输入数组学生成绩 a[n]=');%输入学生成绩到数组中

n=length(a);

s=0;

p=0;

q=0;

for i=1:

n%在循环中进行统计

    s=a(i)+s;

    if a(i)>=90

        p=p+1;

    elseif a(i)<60

        q=q+1;

    end

end

        r=s/n;

        fprintf('全班人数%.0f 总得分%.0f 平均得分%.2f 不及格的人数%.0f 90分(包括90分)以上的人数%.0f\n',n,s,r,q,p);%输出

运行结果:

请输入数组学生成绩a[n]=[8798679890706066]

全班人数8总得分636平均得分79.50不及格的人数090分(包括90分)以上的人数3

结果分析:

灵活运用循环语句,选择语句等基本语句,能很方便地在程序中实现很多基本功能。

第二题:

1习题1:

编程计算小于1000的水仙花数。

问题分析及程序:

分析:

水仙花数指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。

所以在外层设置1到1000的循环,内层对每一个数是否满足水仙花数的条件进行判断并输出。

程序:

i=10;

g=0;

s=0;

b=0;

fprintf(‘1到1000的水仙花数有:

\n’)

whilei<1000

g=mod(i,10);

s=(mod(i,100)-g)/10;

b=(i-10*s-g)/100;

ifi==g^3+b^3+s^3

fprintf('%.0f\n',i);

end

i=i+1;

end

运行结果:

1到1000的水仙花数有:

153

370

371

407

结果分析:

(1)在1到1000内只有以上四个水仙花数;

(2)其实,改程序的代码还可以进行进一步简化,用三个for循环语句的嵌套(每一个for循环代表某一位上数字的变化)来实现对一个三位数的检验。

2习题3:

求方程2x+y+4z=100的所有非负整数解。

问题分析及程序:

分析:

对于该三元一次方程,无法用现成的数学函数直接求解,应用一个三层循环对x,y,z的取值进行判断。

程序:

fprintf('方程的解有:

\n');

i=1;

forx=1:

50

fory=1:

100

forz=1:

25

if2*x+y+4*z==100

i=i+1;

end

end

end

end

fprintf(‘%.0f个’,i);

结果:

方程的解有:

577个

分析:

总共有577组解(因数量过多,故只在此显示解的数量)。

第三题:

编写猜数游戏程序:

首先由计算机随机产生一个[1,100]之间的一个整数,然后由用户猜测所产生的这个数。

根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“Youwon!

”,同时退出游戏。

用户最多有7次机会。

问题分析及程序:

分析:

产生随机数,进行七次循环,每次对输入的值进行判定,若相同则提前跳出循环。

程序:

a=fix(rand

(1)*100);

fori=1:

1:

7

x=input('pleaseinputthenumberyouguess');

Ifx>a

fprintf('high');

continue;

end

Ifx

fprintf('low');

continue;

end

ifx==a

fprintf('youwon');

break;

end

end

结果:

pleaseinputthenumberyouguess50

lowpleaseinputthenumberyouguess75

highpleaseinputthenumberyouguess63

highpleaseinputthenumberyouguess56

lowpleaseinputthenumberyouguess60

youwon

结果分析:

用二分法能有较高概率猜中结果。

第四题:

Fibonacci数组元素满足Fibonacci规则:

(1)用循环语句形成前20个分量的数组;

(2)求该数组中第一个大于10000的数.

问题分析及程序:

分析:

分别用for循环和while循环能解决以上两个问题。

程序:

(1)

a

(1)=1;

a

(2)=1

fori=3:

20

a(i)=a(i-1)+a(i-2);

end

结果:

112358

1321345589144

23337761098715972584

41816765

(2)

a

(1)=1;

a

(2)=1;

i=3;

whilea(i-1)<10000

a(i)=a(i-1)+a(i-2);

ifa(i)>10000

fprintf(‘第一个大于10000的数是:

%d’,a(i))

end

i=i+1;

end

结果:

第一个大于10000的数是:

10946

第五题:

5.

(1)编写一个function函数,调用该函数,可以求一组数的最大值及最小值.

(2)通过键盘输入一组数,利用

(1)编写的function函数,得出最大最小数.

问题分析:

在函数中利用循环求得最大最小值并返回这两个值。

程序:

(1)

function[y1y2]=daxiao(x)

n=length(x);

y1=x

(1);

y2=x

(1);

fori=2:

n

ifx(i)>x(i-1)

y1=x(i);

elsey2=x(i);

end

end

(2)

x=input('请输入这组数的值x[n]=');

[y1y2]=daxiao(x);

fprintf('最大值是:

%.0f,最小值是:

%.0f',y1,y2)

结果:

请输入这组数的值x[n]=[3445566789991]

最大值是:

99,最小值是:

1

结果分析:

函数中的应给存放最值的变量存初值,否则不会得到预期的结果。

心得体会:

(1)matlab中的语句与C语言中的语句结构具有很高的相似性,熟练掌握循环结构,选择结构等将会对我们matlab程序的编写产生很大帮助。

(2)函数的返回值可以是也可以是多个值。

当函数返回的是多个值时,应注意用多个变量进行接收,否则得不到预期的结果。

(3)应熟练掌握MATLAB程序中的几个输入输出函数,以及它们的用法,比如fprintf(不要误写成print,并且在使用时,应在单引号内指明变量输出的格式与类型)与input。

总的感悟

通过本学期的Matlab课程的学习,我对Matlab有了全新的认识,在高等数学上某些问题的解决与验证也有了新的工具,程序的编写能力也有所提高。

相信在未来我能有效得利用好Matlab这款强大的工具,为我的学习提供帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2