数学软件Matlab实验报告

计算机与信息学院

(数学类课程)

实验报告

20##年 12月13日


实验项目列表


计算机与信息学院数学类实验报告(一)

系:   应用数学    专业:    数学与应用数学     年级:   20##级    

姓名:     ***      学号:  102260002051         实验课程: 数学软件 

实验室号:_ 田C-513   实验设备号:   107       实验时间: 2011/09/25

指导教师签字:                               成绩:                 

1.实验项目名称:MATLAB运算基础

2.实验目的和要求:

   1.熟悉启动和退出MTALAB的方法。

   2.熟悉MATLAB命令窗口的组成。

   3.掌握建立矩阵的方法。

   4.掌握MATLAB各种表达式的书写规则以及常用函数的使用。

3.实验使用的主要仪器设备和软件:

联想微机;MATLAB 6.5

4.实验的基本理论和方法:

   冒号表达式,逻辑表达式,whos,find,length,空矩阵

5.实验内容与步骤:

1  (1)  z1=2*sin(pi*85/180)/(1+exp(2))

  (2)  x=[2, 1+2*i; -0.45 5] ;

z2=(1/2)*log(x+sqrt(1+x^2))

    (3)  a=-3.0:0.1:3.0;

z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)

    (4)  t=0:0.5:2.5;

z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3)

2   A=[12,34,-4;34,7,87;3,65,7];

B=[1,3,-1;2,0,3;3,-2,7];

(1)               A+6*B

A-    B+eye(3)

(2)  A*B

A.*B

    (3)  A^3

A.^3

(4)  A/B

    B\A

(5)  [A,B]

[A([1,3],:);B^2]

3  A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25];

B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];

C=A*B

D=C(3:5,2:3)

Whos

4 (1)  A=100:999;

B=rem(A,21);

C=length(find(B==0))

      A='IlOveMatLAb2051';

a=find(A>='A'&A<='Z');

A(a)=[ ]      

6.实验心得(质疑、建议):

   学会了一些Matlab的基础,并利用这些知识进行基本的数值处理。

计算机与信息学院数学类实验报告(二)

系:   应用数学    专业:    数学与应用数学     年级:   20##级    

姓名:     ***      学号:  102260002051         实验课程: 数学软件 

实验室号:_ 田C-513   实验设备号:   107       实验时间: 2011/10/17

指导教师签字:                               成绩:                 

1.实验项目名称:MATLAB矩阵分析与处理

2.实验目的和要求:

   1.掌握生成特殊矩阵的方法。

   2.掌握矩阵分析的方法。

   3.用矩阵求逆法解线性方程组。

3.实验使用的主要仪器设备和软件:

联想微机;MATLAB 6.5

4.实验的基本理论和方法:

单位矩阵eye,随机矩阵rand,零矩阵zeros,对角阵diag,条件数cond,行列式det,迹rank,秩trace,范数norm,逆inv

5.实验内容与步骤:

1  E=eye(3);

R=rand(3,2);

O=zeros(2,3);

S=diag([2,3]);

A=[E,R;O,S];

A^2

B=[E,(R+R*S);O,S^2]

2  H=hilb(5);

P=pascal(5);

Hh=det(H)

Hp=det(P)

Th=cond(H)

Tp=cond(P)

3  A=[1,2,3,4,5;6,7,8,9,10;11,12,13,34,53;6,3,23,7,15;6,26,9,41,28];

det(A)

rank(A)

trace(A)

norm(A)

4  A=[-29,6,18;20,5,12;-8,8,5]

[V,D]=eig(A)

5  (1) A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

b=[0.95;0.67;0.52];

x=inv(A)*b

(2)               B1=[0.95;0.67;0.53];

X1=inv(A)*B1

(3)               N=cond(B)

N1=cond(B1)

 

6  A=fix(10*rand(5))

B=sqrtm(A)

C=sqrt(A)

6.实验心得(质疑、建议):

   学会了利用本实验涉及到的代码对矩阵进行各种求解,对计算和解答方便了非常多。只是求什么量要用哪个代码还不熟练,要查表。因为没发现规律,又太多,易搞混。在以后的实验操作中要多多练习,掌握熟练。

计算机与信息学院数学类实验报告(三)

系:   应用数学    专业:    数学与应用数学     年级:   20##级    

姓名:     ***      学号:  102260002051         实验课程: 数学软件 

实验室号:_ 田C-513   实验设备号:      107       实验时间: 2011/10/29

指导教师签字:                               成绩:                 

1.实验项目名称:选择结构程序设计,循环结构程序设计(1)

2.实验目的和要求:

 1.掌握建立和执行M文件的方法。

 2.掌握利用if语句实现选择结构的方法。

 3.掌握利用switch语句实现多分支选择结构的方法。

 4.掌握try语句的使用。

 5.掌握利用for语句实现循环结构的方法。

 6.掌握利用while语句实现循环结构的方法。

 7.熟悉利用向量运算来代替循环操作的方法。

3.实验使用的主要仪器设备和软件:

联想微机;MATLAB 6.5

4.实验的基本理论和方法:

 If语句,switch语句,try语句,循环结构:for语句、while语句,向量运算代替循环操作的方法。

5.实验内容与步骤:

3.1  x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];

 y=[];

 for x0=x

    if x0<0&x0~=-3

        y=[y,x0*x0+x0-6];

    elseif x0>=0&x0<5&x0~=2&x0~=3

        y=[y,x0*x0-5*x0+6];

    else

        y=[y,x0*x0-x0-1];

    end

end

 x

 y

3.2     if语句:

x=input('please enter a number between 0 to 100:');

if x>100|x<0

disp('Error!!the number you input is wrong!!');

else

if x<=100&x>=90

disp('A');

elseif x<=89&x>=80

disp('B');

elseif x<=79&x>=70

disp('C');

elseif x<=69&x>60

disp('D');

else

disp('E');

end

end

        switch语句:

x=input('please enter a number between 0 to 100:');

while 1                                          

if x<0|x>100

        disp('Error!!the number you input is wrong!!')

        x=input('please input a number between 0 to 100:');

    else

        break;

    end

end

switch fix(x/10)                  

    case {9,10}

        disp('A')

    case 8

        disp('B')

    case 7

        disp('C')

    case 6

        disp('D')

    otherwise

        disp('E')

end

3.3  n=input('input the worker’s ID:');

t=input('input the worker’s working time:');

if t>120

x=(t-120)*84*(1+0.15)+120*84;

elseif t<60

x=t*84-700;

else

x=t*84;

end

disp([num2str(n),' worker’s salary is ',num2str(x)]);

3.4  a=fix(10+90*rand(1,2))         

 x=a(1);

y=a(2);

t=input('please input the yunsuanfuhao:','s');

if  t=='+'

     z=x+y;

elseif  t=='-'

      z=x-y;

elseif  t=='*'

      z=x*y;

elseif  t=='/'

      z=x/y;

end

disp([num2str(x),t,num2str(y),'=',num2str(z)]) 

3.5  a=rand(5,6)         

n=input('while line do you want?:');

if n>5

    disp('over the range,the last line is:')

    a(5,:)

else

    disp(['No.',num2str(n),'''s line is :'])

    a(n,:)

end

4.1    循环结构

pi=0;

n=input('n=');

 for i=1:n

pi=sqrt(pi^2+6*(1/i/i));

end

pi

向量运算

n=input('n=');

i=1:n;

f=6./i.^2;

pi=sqrt(sum(f))

4.2  y=0;

n=1;

while(y<3)

y=y+1/(2*n-1);

n=n+1;

end

y=y-1/(2*(n-1)-1)

n=n-2

4.3  a=input('a=');

b=input('b=');

Xn=1;

Xn1=a/(b+Xn);

n=0;

while abs(Xn1-Xn)>1e-5

    Xn=Xn1;

    Xn1=a/(b+Xn);

    n=n+1;

    if n==500

        break;

    end

end

n

Xn1

r1=(-b+sqrt(b*b+4*a))/2

r2=(-b-sqrt(b*b+4*a))/2

4.4  for i=1:100

if  i==1

f(i)=1;

elseif i==2

f(i)=0;

elseif i==3

f(i)=1;

else

f(i)=f(i-1)-2*f(i-2)+f(i-3);

end

end

max(f)

min(f)

sum(f)

length(find(f>0))

length(find(f==0))

length(find(f<0))

4.5  s=0;

n=0;

for i=2:49

b=i*(i+1)-1;

m=fix(sqrt(b));

for j=2:m

if rem(b,j)==0

break

end

end

if j==m

n=n+1;

s=s+b;

end

end

n

s

6.实验心得(质疑、建议):

   本次实验内容多,而且也比较复杂,但是上机时间太少,个人觉得完成有点仓促。建议老师能多安排上机时间,毕竟这也是一门操作性比较强的学科。

计算机与信息学院数学类实验报告(四)

系:   应用数学    专业:    数学与应用数学     年级:   20##级    

姓名:     ***      学号:  102260002051         实验课程: 数学软件 

实验室号:_ 田C-513   实验设备号:      107       实验时间: 2011/11/14

指导教师签字:                               成绩:                 

1.实验项目名称:循环结构程序设计(2),函数文件

2.实验目的和要求:

  1.理解函数文件的概念。

  2.掌握定义和调用MATLAB函数的方法。

3.实验使用的主要仪器设备和软件:

联想微机;MATLAB 6.5

4.实验的基本理论和方法:

 建立M文件,并在命令窗口调用。

5.实验内容与步骤:

1 建立M文件 mat1.m

    function y=mat1(x)  

y=[exp(x),log(x),sin(x),cos(x)];

在命令窗口调用mat1.m文件

y=mat(1+2*i)  %假设给定的复数为1+2*i

2 建立M文件 dierti.m

function [a,b,N,M]=dierti(m,n,t)

A=[m*cos(t*pi/180),-m,-sin(t*pi/180),0;m*sin(t*pi/180),0,cos(t*pi/180),0;0,n,-sin(t*pi/180),0;0,0,-cos(t*pi/180),1];

B=[0,9.8*m,0,9.8*n];

C=inv(A)*B';

a=C(1);

b=C(2);

N=C(3);

M=C(4);

在命令窗口调用M文件

m1=input('m1=');

m2=input('m2=');

theta=input('theta=');

[a1,a2,N1,N2]=dierti(m1,m2,theta)

 建立M文件 mat2.m

function X=mat2(m1,m2,t)

g=9.8;

A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0;m1*sin(t*pi/180),0,cos(t*pi/180),0;0,m2,-sin(t*pi/180),0;0,0,-cos(t*pi/180),1];

B=[0;m1*g;0;m2*g];

X=inv(A)*B;

在命令窗口调用M文件

X=mat2(1,1,60)

3  建立M文件 mat3.m

function flag=mat3(x)

flag=1;

for i=2:sqrt(x)

if rem(x,i)==0

    flag=0;

    break;

end

end

在命令窗口调用M文件

for i=10:99

j=10*rem(i,10)+fix(i/10);

if mat3(i)&mat3(j)

   disp(i)

end

end

4 建立M文件fx.m

function y=fx(x)

y=1./((x-2).^2+0.1)+1./((x-3).^4+0.01);

在命令窗口调用M文件

y=fx(3)

a=[1,2,3;4,5,6;7,8,9];

y=fx(a)

5 (1)建立M文件mat4.m

function f1=mat4(n)

f1=n+10*log(n*n+5);

在命令窗口调用M文件

y=mat4(40)/(mat4(30)+mat4(20))

 (2) 建立M文件mat5.m

function f2=mat5(n)

f2=0;

for i=1:n

    f2=f2+i*(i+1);

end

在命令窗口调用M文件

y=mat5(40)/(mat5(30)+mat5(20))

6.实验心得(质疑、建议):

   难度有所提高,但实用性也是非常强大的!通过自己写函数来完成更复杂的题目,完成之后很有成就感。但实验安排的时间还是不够,一次实验只做了4道题目,课本的知识还掌握不牢固,会找个时间好好巩固下的。

计算机与信息学院数学类实验报告(五)

系:   应用数学    专业:    数学与应用数学     年级:   20##级    

姓名:     ***      学号:  102260002051         实验课程: 数学软件 

实验室号:_ 田C-513   实验设备号:      107       实验时间: 2011/11/24

指导教师签字:                               成绩:                 

1.实验项目名称:高层绘图操作

2.实验目的和要求:

1.掌握绘制二维图形的常用函数。

2.掌握绘制三维图形的常用函数。

3.掌握绘制图形的辅助操作。

3.实验使用的主要仪器设备和软件:

联想微机;MATLAB 6.5

4.实验的基本理论和方法:

 Linespace,plot,subplot,title,steam,bar,stairs,fill(要把颜色代码填进去),polar等。

5.实验内容与步骤:

1  x=linspace(0,2*pi,101);

y=(0.5+3*sin(x)./(1+x.^2)).*cos(x);

plot(x,y)

2 (1) x=linspace(-2*pi,2*pi,100);

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

plot(x,y1,'r-',x,y2,'b:',x,y3,'g--');

text(-4,16,'\leftarrow y1=x^2');

text(3*pi/2,-0.5,'\uparrow y2=cos(2*x)');

text(-1.5*pi,-2.25*pi*pi,'\leftarrow y3=y1*y2');

  (2) x=linspace(-2*pi,2*pi,100);

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

subplot(2,2,1);

plot(x,y1);

title('y1=x^2');

subplot(2,2,2);

plot(x,y2);

title('y2=cos(2*x)');

subplot(2,2,3);

plot(x,y3);

title('y3=x^2*cos(2*x)');

(3)x=linspace(-2*pi,2*pi,50);

y1=x.^2;

subplot(2,2,1);

bar(x,y1);

title('y1=x^2的条形图');

subplot(2,2,2);

stairs(x,y1);

title('y1=x^2的阶梯图');

subplot(2,2,3);

stem(x,y1);

title('y1=x^2的杆图');

subplot(2,2,4);

fill(x,y1,'b');

title('y1=x^2的填充图');

x=linspace(-2*pi,2*pi,50);

y2=cos(2*x);

subplot(2,2,1);

bar(x,y2);

title('y2=cos(2*x)的条形图');

subplot(2,2,2);

stairs(x,y2);

title('y2=cos(2*x)的阶梯图');

subplot(2,2,3);

stem(x,y2);

title('y2=cos(2*x)的杆图');

subplot(2,2,4);

fill(x,y2,'r');

title('y2=cos(2*x)的填充图');

x=linspace(-2*pi,2*pi,50);

y3=x.^2.*cos(2.*x);

subplot(2,2,1);

bar(x,y3);

title('y3=x^2*cos(2*x)的条形图');

subplot(2,2,2);

stairs(x,y3);

title('y3=x.^2*cos(2*x)的阶梯图');

subplot(2,2,3);

stem(x,y3);

title('y3=x.^2*cos(2*x)的杆图');

subplot(2,2,4);

fill(x,y3,'y');

title('y3=x.^2*cos(2*x)的填充图');

3    x=-5:0.01:5;

y=[];

for x0=x

if x0<=0

y=[y,(x0+sqrt(pi))/exp(2)];   

else

y=[y,0.5*log(x0+sqrt(1+x0^2))];

end

end

plot(x,y)

4  a=input('a=');

b=input('b=');

n=input('n=');

t=-2*pi:0.01:2*pi;

r=a*sin(b+n*t);

polar(t,r)

5  x=linspace(-5,5,21);

y=linspace(0,10,31);

[x,y]=meshgrid(x,y);

z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);

subplot(2,1,1);

surf(x,y,z);

subplot(2,1,2);

contour3(x,y,z,50);

6  ezsurf('cos(s)*cos(t)','cos(s)*sin(t)','sin(s)',[0,0.5*pi,0,1.5*pi]);

shading interp

6.实验心得(质疑、建议):

   很实用的绘图方法,可以得出函数的图像,很直观明了。熟练度还不够,仍需加强。

相关推荐