哈尔滨工程大学数学上机实验.docx

上传人:b****3 文档编号:27552268 上传时间:2023-07-02 格式:DOCX 页数:23 大小:58.03KB
下载 相关 举报
哈尔滨工程大学数学上机实验.docx_第1页
第1页 / 共23页
哈尔滨工程大学数学上机实验.docx_第2页
第2页 / 共23页
哈尔滨工程大学数学上机实验.docx_第3页
第3页 / 共23页
哈尔滨工程大学数学上机实验.docx_第4页
第4页 / 共23页
哈尔滨工程大学数学上机实验.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

哈尔滨工程大学数学上机实验.docx

《哈尔滨工程大学数学上机实验.docx》由会员分享,可在线阅读,更多相关《哈尔滨工程大学数学上机实验.docx(23页珍藏版)》请在冰豆网上搜索。

哈尔滨工程大学数学上机实验.docx

哈尔滨工程大学数学上机实验

实验报告

 

课程名称

数学实验

实验项目

数学实验上机实践

课程学时

48

上机地点

逸夫楼315,数学科学学院实验室

实验类型

综合类

实验学时

24

班级

20161122

学号

2016112201

姓名

陈宇

作业成绩

(共五档)

A

B

C

D

E

 

 

 

 

 

实验

完成情况

(按要求完成实验在括号内打√,没有按要求完成实验在括号内打×)

实验一:

函数绘图实验()

实验二:

微积分实验()

实验三:

数值计算实验()

实验四:

怎样计算Pi?

()

实验五:

素数实验()

实验六:

函数迭代实验()

实验七:

最佳分数近似值实验()

实验八:

分形几何实验()

实验九:

混沌实验()

实验十:

概率统计实验()

 

实验一:

函数绘图实验

1、实验目的

利用数学软件绘制数学函数曲线及曲面,通过实验了解函数图形的绘制方法。

2、实验内容

⑴在同一个图形中,绘制双曲线,以及的双曲线2条渐近线。

⑵在同一个图形中,绘制球面与锥面相交的曲面。

⑶自选题目:

绘制一个或者多个平面图形、空间曲面图形。

3、程序设计及运行结果

(1)>>x=-5:

0.1:

5;

ezplot('x^2-y^2=1');

y1=x;y2=-x;

holdon;

plot(xy1);

holdon;

plot(xy2);

(2)>>x=-5:

0.1:

5;y=x;z=x;

[xyz]=meshgrid(xyz);

f1=x.^2+y.^2+z.^2-1;

f2=x.^2+y.^2-z;

p1=patch(isosurface(xyzf10));

set(p1'FaceColor''m');

p2=patch(isosurface(xyzf20));

set(p2'FaceColor''w');

(3)

>>x=-5:

0.1:

5;y=x;z=x;

[xyz]=meshgrid(xyz);

f1=x.^2+y.^2+z.^2-9;

f2=x.^2+y.^2-2*z;

p1=patch(isosurface(xyzf10));

set(p1'FaceColor''m');

p2=patch(isosurface(xyzf20));

set(p2'FaceColor''w');

4、讨论与分析

在本次试验中初步了解了matlab,学会了一些简单绘图,加深了对函数的理解为以后实验作个铺垫,由浅入深的了解matlab.

实验二:

微积分实验

1、实验目的

熟悉并了解使用数学软件,进行微积分问题计算的相关数学软件命令,让学生通过实验理解微积分,解决微积分计算上的问题。

2、实验内容

⑴求函数的极值。

⑵计算二重积分其中是由所围成的区域。

⑶自选题目:

计算一个或者多个微积分习题。

3、程序设计及运行结果

(1)>>symsxy;y=2*x^3-6*x^2-18*x+7;ezplot(y[-55])

>>solve(diff(yx)x)

ans=

-1

3

>>y=diff(yx2)

y=

12*x-12

>>x=-1;eval(y)

ans=

-24

>>x=3;eval(y)

ans=

24

(2)>>symsxy;ezplot('y^2-x'[05-33]);holdon;ezplot('x-2'[05-33]);holdoff

>>symsxy;[xy]=solve('y^2-x=0''x-2=y')

x=

1

4

y=

-1

2

>>symsxy;dblquad('x*y'04-12)

ans=

12

(3)计算∫x^4/(4+4*x^2))

>>symsx

>>int(x^4/(4+4*x^2))

ans=

atan(x)/4-x/4+x^3/12

4、讨论与分析

通过本次实验,熟悉了MATLAB中求函数的导数、微分等运算的命令,掌握了MATLAB

中求函数的不定积分、定积分的命令

实验三:

数值计算实验

1、实验目的

应用数学软件进行数值计算方面的相关实验,熟悉程序设计方法。

通过求数值积分、数据拟合等问题,并结合函数绘图,去理解数学、应用数学。

2、实验内容

⑴编写使用梯形法计算积分的程序。

⑵下面的实验数据表示函数的关系,例如,数据如下:

{{01.97687}{0.052.17002}{0.12.34158}{0.152.46389}

{0.22.71512}{0.253.06045}{0.33.27829}{0.353.51992}

{0.43.8215}{0.454.2435}{0.54.55188}{0.554.88753}

{0.65.15594}{0.655.698}{0.76.04606}{0.756.42701}

{0.87.00342}{0.857.50192}{0.97.89178}{0.958.49315}{19.0938}}

试确定此函数关系,同时将这些点与所求出的函数曲线绘制在一个图形中。

⑶自选题目:

计算一个数值计算方面的问题。

3、程序设计及运行结果

(1)>>x=0:

0.01:

1;y=sin(sin(x));trapz(xy)

ans=

0.4306

(2)>>x=0:

0.05:

1

x=

1至9列

00.05000.10000.15000.20000.25000.30000.35000.4000

10至18列

0.45000.50000.55000.60000.65000.70000.75000.80000.8500

19至21列

0.90000.95001.0000

>>y=[1.976872.170022.341582.463892.715123.060453.278293.519923.82154.24354.551884.887535.155945.6986.046066.427017.003427.501927.891788.493159.0938];

>>n=3;

>>A=polyfit(xyn);

>>y1=polyval(Ax);

>>plot(xy'k*'xy1'r-');

(3)Sn=∫012*x^n/(x+1)dx其中n等于123

>>S=zeros(n1);

fori=1:

n

S(i)=quadl(@(x)2*x.^i./(x+1)01);

end

S

 

S=

 

0.6137

0.3863

0.2804

4、讨论与分析

从实验结果中我们可以得出,在一定的阶次范围内,拟合阶次越高,计算结果越精确。

最小二乘法虽然看起来简单,但它在数值计算及应用上却非常重要,

实验四:

怎样计算Pi?

1、实验目的

通过计算圆周率,熟悉数学软件的程序设计方法。

2、实验内容

寻找一种及一种以上的方法计算π,请尽量不使用教材《数学实验》中“实验二怎样计算π”中所使用过的方法,参见教材第14页---19页。

3、程序设计及运行结果

>>nd=100;

digits(nd);

nk=14;

a2=1;

k=0;

s0=1103;

fork=1:

nk

n=4*k;

a1=1;

forj=1:

n

a1=vpa(a1*j);

end

a2=vpa(k*a2);

k4=vpa(4*k);

s0=vpa(s0+a1*(1103+26390*k)/(a2^4*396^k4));

end

p=vpa(1/2/sqrt

(2)/s0*9801);

a=vpa(pi100)

a=

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

4、讨论与分析

收敛速度较快,计算结果与pi真实值的近似程度很客观。

实验五:

素数实验

1、实验目的

通过实验理解素数理论,找出素数理论的某些规律。

2、实验内容

本实验是教材《数学实验》中“实验五素数”的练习12,参见教材第43页,原题如下:

对,计算,它们能否都给出素数?

在10000以内的素数中,由公式给出的素数占多少?

类似地,对公式以及公式做同样的判别,你自己能否给出一个或者多个类似的公式?

3、程序设计及运行结果

(1)对的计算

>>f=@(x)x^2+x+41;

a=0;b=0;c=0;k=1;m=1;

while(k<10000)

ifisprime(k)

a=a+1;

end

k=k+1;

end

while(m<100)

ifisprime(f(m))

b=b+1;

elsec=1;

end

m=m+1;

end

ifc==0

disp('Yes!

Allf(n)isprime\n')

elsedisp('*No!

Somef(n)isnotprime?

?

')

end

disp('theprimeratef(n)providingis')

b/a

a

b

*No!

Somef(n)isnotprime?

?

theprimeratef(n)providingis

ans=

0.0692

a=

1229

b=

85

(2)对计算

>>f=@(x)x^2-79*x+1601

a=0;b=0;c=0;k=1;m=1;

while(k<10000)

ifisprime(k)

a=a+1;

end

k=k+1;

end

while(m<100)

ifisprime(f(m))

b=b+1;

elsec=1;

end

m=m+1;

end

ifc==0

disp('Yes!

Allf(n)isprime\n')

elsedisp('*No!

Somef(n)isnotprime?

?

')

end

disp('theprimeratef(n)providingis')

b/a

a

b

f=

@(x)x^2-79*x+1601

*No!

Somef(n)isnotprime?

?

theprimeratef(n)providingis

 

ans=

0.0765

a=

1229

b=

94

(3)对计算

>>f=@(x)6*x^2+6*x+31;

a=0;b=0;c=0;k=1;m=1;

while(k<10000)

ifisprime(k)

a=a+1;

end

k=k+1;

end

while(m<100)

ifisprime(f(m))

b=b+1;

elsec=1;

end

m=m+1;

end

ifc==0

disp('Yes!

Allf(n)isprime\n')

elsedisp('*No!

Somef(n)isnotprime?

?

')

end

disp('theprimeratef(n)providingis')

b/a

a

b

*No!

Somef(n)isnotprime?

?

theprimeratef(n)providingis

ans=

0.0602

a=

1229

b=

74

(4)在10000以内的素数中,由公式3n^2+2n+1给出的素数占多少?

>>f=@(x)3*x^2+2*x+1

a=0;b=0;c=0;k=1;m=1;

while(k<10000)

ifisprime(k)

a=a+1;

end

k=k+1;

end

while(m<100)

ifisprime(f(m))

b=b+1;

elsec=1;

end

m=m+1;

end

ifc==0

disp('Yes!

Allf(n)isprime\n')

elsedisp('*No!

Somef(n)isnotprime?

?

')

end

disp('theprimeratef(n)providingis')

b/a

a

b

f=

@(x)3*x^2+2*x+1

*No!

Somef(n)isnotprime?

?

theprimeratef(n)providingis

ans=

0.0122

a=

1229

b=

15

4、讨论与分析

本实验运用更多的就是循环语句,循环方法有for语句和while语句,对本实验来说都可以达到结果。

 

实验六:

函数迭代实验

1、实验目的

通过实验,了解迭代及其相关性质,并利用计算机进行实现函数迭代算法。

2、实验内容

本实验是教材《数学实验》中“实验九迭代

(一)---方程求解”的练习5,参见教材第85页,原题如下:

选用几种迭代格式求的近似值,并同改进的迭代格式做比较。

3、程序设计及运行结果

>>x0=1;err=1;m=1;

whileerr>1e-100&&m<10000

x1=x0-(x0^3-2)*eps/(((x0+eps)^3-2)-(x0^3-2));

err=abs((x1-x0)/x0);

x0=x1;

m=m+1;

end

牛顿迭代

>>symsx

f=x^3-2;

df=diff(fx);

eps=1e-6;

x0=10;

cnt=0;

MAXCNT=200;%最大循环次数

whilecnt

x1=x0-subs(fxx0)/subs(dfxx0);%去掉这个分号可以看到迭代过程.

if(abs(x1-x0)

break;

end

x0=x1;

cnt=cnt+1;

end

ifcnt==MAXCNT

disp'不收敛'

else

vpa(x18)

end

ans=

1.259921

4、讨论与分析

二分法计算对函数的要求是比较宽松的,而且方法从编程思想到实现都比较都比较容易,但是二分法收敛速度不是太快.对同一函数,运用不同迭代方法求解,所得到的结果是有差别的,但大体上结果是接近的,并且迭代次数越多结果越相近。

 

实验七:

最佳分数近似值实验

1、实验目的

通过对无理数的最佳分数逼近方法的试验,理解近似计算的方法。

2、实验内容

本实验是教材《数学实验》中“实验三最佳分数近似值”的练习3,参见教材第28页。

利用连分数展开方法求出的分母在小于等于1000以内的所有既约分数近似值,并给出这些近似值中的最佳近似值。

3、程序设计及运行结果

function

L=sssm(n)

q

(1)=1;

j=1;

fori=1:

n;

q(i+1)=q(i)+1;

p(i)=round(q(i)*pi);

p(i+1)=round(q(i+1)*pi);

ifabs(pi-p(i)/q(i))>=abs(pi-p(i+1)/q(i+1));

L(j)=p(i+1)/q(i+1);

j=j+1;

end

end

formatrat

p/q

运行结果:

>>sssm(1000)

 

>>L=sssm(1000)L=

Columns1through7

3.00003.00003.25003.18183.14753.14713.1467

Columns8through14

3.14633.14613.14583.14563.14553.14373.1436

Columns15through21

3.14363.14363.14363.14353.14353.14353.1429

Columns22through28

3.14293.14293.14293.14293.14293.14293.1429

Columns29through35

3.14253.14253.14253.14253.14253.14253.1425Columns36through42

3.14253.14233.14233.14233.14233.14233.1423

Columns43through49

3.14233.14233.14223.14223.14223.14223.1422

Columns50through56

3.14223.14223.14223.14213.14213.14213.1421

Columns57through63

3.14213.14213.14213.14213.14203.14203.1420

Columns64through70

3.14203.14203.14213.14213.14213.14203.1420

Columns71through74

3.14203.14203.14203.1420

4、讨论与分析

通过上述实验,我们也可将误差小、分母小这两个标准综合起来Pi的连分数的展开:

实验结果接近,但还存在误差

上述近似值中最佳逼近至为3.1420.

 

实验八:

分形几何实验

1、实验目的

通过实验了解分形及分形图像的特点、分形图像的绘制方法。

2、实验内容

本实验是教材《数学实验》中“实验十二迭代

(二)---分形”,参见教材第117-136页。

⑴利用计算机绘出Sierpinski三角形。

⑵自选题目:

绘制其它分形图形。

3、程序设计及运行结果

(1)>>a=1;b=0.5;c=1;

k=7;

A=zeros(23^(k+1));

A(:

1:

3)=[0ab;00c];

forn=1:

k

B=1/2*A;

A(:

1:

3^n)=B(:

1:

3^n);

A(:

3^n+1:

2*3^n)=B(:

1:

3^n)+1/2*[a;0]*ones(13^n);

A(:

2*3^n+1:

3^(n+1))=B(:

1:

3^n)+1/2*[b;c]*ones(13^n);

end

fori=1:

3^k

patch(A(13*i-2:

3*i)A(23*i-2:

3*i)'r');

end

(2)functiontree(nab)

%tree(8pi/8pi/8)n为分形树迭代次数

%ab为分枝与竖直方向夹角

%x1y1x2y2为初始线段两端点坐标nn为迭代次数

n=8;a=pi/6;b=pi/6;

x1=0;y1=0;

x2=0;y2=1;

plot([x1x2][y1y2])

holdon

[XY]=tree1(x1y1x2y2ab);

holdon

W=tree2(XY);

w1=W(:

1:

4);

w2=W(:

5:

8);

%w为2^k*4维矩阵存储第k次迭代产生的分枝两端点的坐标

%w的第i(i=12…2^k)行数字对应第i个分枝两端点的坐标

w=[w1;w2];

fork=1:

n

fori=1:

2^k

[XY]=tree1(w(i1)w(i2)w(i3)w(i4)ab);

W(i:

)=tree2(XY);

end

w1=W(:

1:

4);

w2=W(:

5:

8);

w=[w1;w2];

end

 

%由每个分枝两端点坐标(x1y1)(x2y2)产生两新点的坐标(x3y3)(x4y4)画两分枝图形并把%(x2y2)连同新点横、纵坐标分别存储在数组XY中

function[XY]=tree1(x1y1x2y2ab)

L=sqrt((x2-x1)^2+(y2-y1)^2);

if(x2-x1)==0

a=pi/2;

elseif(x2-x1)<0

a=pi+atan((y2-y1)/(x2-x1));

else

a=atan((y2-y1)/(x2-x1));

end

end

x3=x2+L*2/3*cos(a+b);

y3=y2+L*2/3*sin(a+b);

x4=x2+L*2/3*cos(a-b);

y4=y2+L*2/3*sin(a-b);

a=[x3x2x4];

b=[y3y2y4];

plot(ab)

axisequal

holdon

X=[x2x3x4];

Y=[y2y3y4];

 

%把由函数tree1生成的XY顺次划分为两组分别对应两分枝两个端点的坐标并存储在一维%数组w中

functionw=tree2(XY)

a1=X

(1);b1=Y

(1);

a2=X

(2);b2=Y

(2);

a3=X

(1);b3=Y

(1);

a4=X(3);b4=Y(3);

w=[a1b1a2b2a3b3a4b4];

4、讨论与分析

通过本次的实验,我更了解了几何分形图以及用matlab软件产生几何分形图的方法、程序结构。

总的来说,通过本次实验,学习到了matlab软件的一种新的用法,对自己的数学实验能力又提升了不少

实验九:

混沌实验

1、实验目的

通过实验,观察混沌现象,进而发现隐藏在混沌后面的数学规律。

2、实验内容

本实验是教材《数学实验》中“实验十三迭代(三)---混沌”的练习7,参见教材第139页,原题如下:

观察Feigenbaum图。

在它的左部有一条曲线,这代表迭代具有唯一的吸引不动点。

⑴从某一点开始,该条曲线分成两条曲线,这说明了迭代的什么性质?

迭代的点列是如何运动的?

⑵再在下一个分支点,曲线分成几个分支?

这说明迭代的什么性质?

相应的迭代点列是如何运动的?

⑶上述分支过程是否一直进行下去?

是否存在一个极限分支?

在极限分支点之后,Feigenbaum图是否显得很混乱?

⑷估计出等的值,再计算等,它们是否比较接近?

由此猜测数列是否会收敛?

3、程序设计及运行结果

clear;clf;

holdon

axis([05-55]);

grid

fora=0:

0.005:

5

x=[0.2];

fori=2:

150

x(i)=a*sin(pi*x(i-1));

end

pause(0.1)

fori=101:

150

plot(ax(i)'k.');

end

end

4、讨论与分析

混沌系统普遍对初值高度敏感,其行为不可预测,呈现随机性

 

实验十:

概率统计实验

1、实验目的

通过实验,让学生利用计算机观察随机现象及其相应的性质、规律。

2、实验内容

本实验是教材《数学实验》中“实验六概率”的练习6,参见教材第56-57页,原题如下:

设T是在区间[01]内均匀分布的随机变量。

让T连取n个值,则这n个值的

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1