数学分析课程设计Word下载.docx
《数学分析课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《数学分析课程设计Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
end
break;
whilea>
0,
A(6)=5*a+1;
ifA(6)~=fix(A(6)),
a=a+1;
i=6;
continue;
>
aa=
1023
whilei>
=2,
A(i-1)=A(i)*5/4+1;
ifA(i-1)~=fix(A(i-1)),break;
endi=i-1;
if(A
(1)~=0)&
&
(A
(1)==fix(A
(1))),
A
(1)
ans15621
plot(A,’k’)
1 e-nx
1.2
当n=0,1,2,L,100时,选择稳定的算法计算积分
In=ò
0e-x+10dx
用蒙特卡罗方法求解该问题,在(0,1)上随机选取一定数量的点,以落在积分区域内的频率近似所求积分,matlab程序如下:
mtj.m
functiona=mtj(n)
f=@(x)exp(-n*x)/(exp(-x)+10);
N=10000;
r=0;
ifA
(2)<
=f(A
(1))
r=r+1;
fori=1:
N,
A=rand(1,2);
a=r/N;
1.3 绘制静态和动态的Koch分形曲线
问题描述:
从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的另两条边代替,形成具有
5个结点的新的图形;
在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的另两条边代替,再次形成新的图形,这时,图形中共有17个结点。
这种迭代继续进行下去可以形成Koch分形曲线。
在迭代过程中,图形中的结点将越来越多,而曲线最终显示细节的多少取决于所进行的迭代次数和显示系统的分辨率。
Koch分形曲线的绘制与算法设计和计算机实现相关。
图1.1Koch曲线的形成过程
A.绘制静态Koch分形曲线,代码如下:
A=[cos(pi/6)-sin(pi/6);
sin(pi/6)cos(pi/6)];
p=[010;
00;
];
%第一行是横坐标第二行是纵坐标n=2;
fork=1:
6,m=1;
n-1,d=p(:
i+1)-p(:
i);
p1(:
m+1)=p(:
i)+d/3;
m+3)=p(:
i)+d*2/3;
m+2)=p(:
i)+A*d/sqrt(3);
m:
4:
m+4)=p(:
i:
i+1);
m=m+5;
end
n=length(p1);
p=p1;
clearp1;
endx=p(1,:
);
y=p(2,:
plot(x,y,'
k'
axis([010010]);
matalb得到图形如下:
B.动态的Koch分形曲线,在静态曲线的基础上得到动态分形曲线的代码和截图如下:
第—39—页
n=2;
x=p(1,:
pause
(2);
实验二2.1小行星轨道问题:
一天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,在五个不同的对小行星作了五次观察,测得轨道上五个点的坐标数据(单位:
万公里)
如下表所示:
P1
P2
P3
P4
P5
X坐标
53605
58460
62859
66662
68894
Y坐标
6026
11179
16954
23492
由开普勒第一定律知,小行星轨道为一椭圆,椭圆的一般方程可表示为:
1 2 3 4 5
ax2+2axy+ay2+2ax+2ay+1=0
现需要建立椭圆的方程以供研究。
(1)分别将五个点的数据代入椭圆一般方程中,写出五个待定系数满足的等式,整理后写出线性方程组
AX=b
以及方程组的系数矩阵和右端项b;
(2)用MARLAB求低阶方程的指令A\b求出待定系数a1,a2,a3,a4,a5;
(3)分别用直接法、Jacobi迭代法、Gauss-Seidel迭代法求出待定系数a1,a2,a3,a4,a5.
(1)由五个点的坐标(x1,y1)...(x5,y5)代入一般椭圆方程整理可得
ì
ax2+2axy+ay2+2ax+2ay
=-1
ï
11 211 31 41 51
ax2+2axy+ay2+2ax+2ay
12 222 32 42 52
í
13 233 33 43 53
14 244 34 44 54
î
15 255 35 45 55
代入题目中的数据得
A=[2873496025.0, 646047460.0, 36312676.0,107210.0, 12052.0]
[3417571600.0,1307048680.0, 124970041.0,116920.0, 22358.0]
[3951253881.0,2131422972.0, 287438116.0,125718.0, 33908.0]
[4443822244.0,3132047408.0, 551874064.0,133324.0, 46984.0]
[4746383236.0,9492766472.0,4746383236.0,137788.0,137788.0]b=(-1,-1,-1,-1,-1)’;
(2)用MARLAB求低阶方程的指令A\b得待定系数a1,a2,a3,a4,a5
æ
0.000000079170015ö
ç
÷
-0.000000872696674÷
为:
(a1,a2,a3,a4,a5)’»
ç
-0.000002347489573÷
*10-4
-0.108977537832776÷
0.174662645730850÷
è
ø
(3)a.直接法:
先将[A,b]用高斯—约当消元法和行主元法求行最简行矩阵
1 0 0 0 0 0 ö
0 1 0 0 0 0 ÷
0 0
1
0 ÷
÷
0 -
1/91762÷
1 1/57253÷
ø
R=
0 ö
æ
ç
(a1,a2,a3,a4,a5)’=ç
0 ÷
»
-1/91762÷
-0.108977572415597÷
1/57253÷
0.174663336419052÷
Matlab输入如下:
è
è
x=[5360558460628596666268894]'
;
y=[602611179169542349268894]'
A=[x.^22*x.*yy.^22*x2*y];
b=-ones(5,1);
rref([A,b])
b.Jacobi迭代法:
取x(0)=(0,0,0,0,0)’,迭代10次,由matlab求得
12345
(a,a,a,a,a)’=(-0.0004,-0.0012,-0.0077,-23.1573,-86.6738)T
X0=zeros(5,1);
D=diag(diag(A));
L=tril(A)-D;
U=triu(A)-D;
Bj=-D\(L+U);
fj=D\b;
X1=A\b;
k=1;
whilek>
X=Bj*X0+fj;
X0=X;
if(norm(X-X1,inf)<
10^-5)||(k>
10)break;
endk=k+1;
c.Gauss-Seidel迭代法:
0.000002111208571ö
0.000021