-inst
------------------------------------------<
/p>
精品文档
-------------------------
------------
数值分析实习报告
- 1 -
数值分析实习报告
上机实习题一
一、题目:
b
与已知
A
12.38412,2.115237,-1.0
61074,1.112336,-0.113584,0.718719,1.742382,3.06781
3,-2.0317
43
2.115237,19.141823,-3.125432,-1.012345,2.1897
36,1.563849,-0.784165,1.112348,3.12312
4
-1.061074,-3.125432
,15.567914,3.123848,2.031454,1.836742,-1.056781,0.
336993,-1.0101
03
<
/p>
1.112336,-1.012345,3.123848,27.108437,4.
101011,-3.741856,2.101023,-0.71828,-0.03758
5
A=
-0.113584,2.
189736,2.031454,4.101011,19.897918,0.431637,-3.111
223,2.121314,1.784137
0.718719,1.563849,1.836742,-3.741856,0.431637,
9.789365,-0.103458,-1.103456,0.238417
1.742382,-0.784165,-1.056781,2.101023,-
3.111223,-0.103458,14.7138465,3.123789,-2.21
3474
3.067813
,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.1
23789,30.719334,4.446782
-2.031743,3.123124,-1.010103,-0.037585,1.78
4317,0.238417,-2.213474,4.446782,40.0000
1
b={2.1874369,33.992318,-25.173417,0
.84671695,1.784317,-86.612343,1.1101230,4.719345
p>
,-5.6784392}
1
.用
Household
变换,把
A
化为三对角阵
B
(并打印
B
)
。
(0)
=0,
迭代
9
次)
ω
=1.4,X
。
2
.用超松弛法求解
BX=b
(取松弛因子
3
.用列主元素消去法求解
BX=b
。
二、解题方法的理论依据
:
学资学习网
1
、用
Householder
变换的理论依据
﹝
1
﹞
p>
令
A0=A,a(ij)1=a(ij),
已知
Ar_1
即
Ar_1=a(ij)
r
﹝
2
﹞
Sr=sqrt(pow(a,2))
﹝
3
﹞
a(r)=Sr*Sr+abs(a(r+1,r))*Sr
﹝
4
﹞
y(r)=A(r_1)*u?/a?
﹝
5
﹞
Kr=(/2)*Ur
的转置
*Yr/a?
﹝
6
﹞
Qr=Yr-Kr*Ur
﹝
7
﹞
Ar
=A(r-1)-(Qr*Ur
的转置
+Ur*Qr
的转置) r=1,2,,……,n
-2
2
、用超松弛法求解
(m)(m-1)
其基本思想:在高
斯方法已求出
x,x
的基础上,组合新的序列,从而加快收敛速
度。
其算式:
B[i][i
?
1]
?
X[i
?
< br>1]
?
B[i][i]
?
X[i]
?
B[i][i
?
1]
?
X[i
< br>?
1]
?
b[i]
B[i][i
p>
?
1]B[i][i
?
1]b[i]~
?
X[i]
??<
/p>
X[i
?
1]
?
X0[i
?
1]
???
?
?
?
B[i][i]B[i][i]B[i][i]
?
~X[i]
?
w
?
X[i
]
?
X0[i]
??
X0[i]
?
X[i]
??
其中
ω
是超松弛
因子,当
ω
>1
时,可
以加快收敛速度
3
、用消去法求解
用追赶消去法求<
/p>
Bx=b
的方法:
d1[i
?
1]
?
b[i]a1[i
?
2]
?
B[i
?
1][i]
,
,
- 2 -
数值分析实习报告
]1
i<
/p>
][
i
??
1[
i
1]
?
B<
/p>
[
ib
1[
?<
/p>
1]
?
B
[
p>
i
][
i
]
c
, ,
q1[0]=0 , u1[0]=0 ,
8
?
,,
??
i]),i
p>
?
1,2ib1[]
?
a1[i]
?
q1[1q1[i]
??
c[i](
p>
u1[i}
?
(d1[i]
?
a1[i]
?
u1[i])
(b1[i]
?
a1[i]
?
q1[i
?
1]),i
?
1,2,
???
,9
x[9]=u1[9]
x
[
i
p>
]
?
q
1[
i
]
?
x
[
i
?
1]
?
u
1[
i
],
i
?
8,7,
???
,1
三、
1
.计算程序:
#include math.h
#include stdio.h
#define ge 8
void main()
{
int sign(double x);
double a[][9]=
{
{12.38412,2.11
5237,-1.061074,1.112336,-0.113584,0.718719,1.74238
2,3.067813,-2.031743},
{ 2.115237,19.141823,-3.125432,-1.01234
5,2.189736,1.563849,-0.784165,1.112348,3.123124},
{-1.061074,-3.1
25432,15.567914,3.123848,2.031454,1.836742,-1.0567
81,0.336993,-1.010103},
p>
{1.112336,-1.012345,3.123848,27.108437,4.
101011,-3.741856,2.101023,-0.71828,-0.037585},
学资学习网
{-0.113584,2.189736,2.03145
4,4.101011,19.897918,0.431637,-3.111223,2.121314,1
.784317},
{0.71
8719,1.563849,1.836742,-3.741856,0.431637,9.789365
,-0.103458,-1.103456,0.238417},
{1.742382,-0.784165,-1.0567
81,2.101023,-3.111223,-0.103458,14.713846,3.123789
,-2.213474},
{3
.067813,1.112348,0.336993,-0.71828,2.121314,-1.103
456,3.123789,30.719334,4.446782},
{-2.031743,3.123124,-1.0101
03,-0.037585,1.784317,0.238417,-2.213474,4.446782,
40.00001}
};
double k,h,s,w;
int i,j,n,m,g;
double
u[9],x1[9],y[9],q[9],b1[9][10],x[9];
double b[9]=
p>
{2.1874369,33.992318,-25.173417,0.8467169
5,1.784317,-86.612343,1.1101230,4.719345,-5.678439
2
};
for(j=0;j<7;++j)
/*Household
变换
*/
{
s=0.0;
for(i=j+1;i<9;++i)
s=s+a[i][j]*a[i][j];
s=sqrt(s);
h=(
a[j+1][j]>0)?(s*s+s*a[j+1][j]):(s*s-s*a[j+1][j]);
for(g=0;g<9;++g)
{
- 3 -
数值分析实习报告
if
(g<=j)
u[g]=0;
else if (g==j+1)
u[g]=a[j+1][j]+s*sign(a[j+1][j]);
else u[g]=a[g][j];
}
for(m=0;m<9;++m)
{
y[m]=0;
for(n=0;n<9;++n)
y[m]=y[m]+a[m][n]*u[n];
y[m]=y[m]/h;
}
k=0;
for(i=0;i<9;++i)
k=k+u[i]*y[i];
k=0.5*k/h;
for(i=0;i<9;++i)
q[i]=y[i]-k*u[i];
学资学习网
for(n=0;n<9;++n)
for(m=0;m<9;++m)
a[m][n]=a[m][n]-(q[m]*u[n]+u[m]*q[n]);
}
printf(Household:n);
for(i=0;i<9;++i)
for(j=0;j<9;++j)
{
if
(j%9==0)
printf(
);
printf(%-9.5f,a[i][j]);
}
printf(
);
w=1.4;
/*
超松弛法
*/
for(i=0;i<9;i++)
x1[i]=0;
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
if(i==j)
b1[i][j]=0;
else b1[i][j]=-a[i][j]/a[i][i];
}
for(i=0;i<9;i++)
b1[i][9]=b[i]/a[i][i];
- 4 -
数值分析实习报告
for(n=0;n<9;n++)
for(i=0;i<9;i++)
{
s=0;
for(j=0;j<9;j++)
s=s+b1[i][j]*x1[j];
s=s+b1[i][9];
x1[i]=x1[i]*(1-w)+w*s;
}
for(i=0;i<9;i++)
{
if (i==5)
学资学习网
printf(
);
牰湩晴尨
?????
屦椬砬嬱嵩
?
}
printf(
);
u[0]=a[0][0];
/*
以下是消去法
*/
y[0]=b[0];
for(i=1;i<9;i++)
{
q[i]=a[i][i-1]/u[i-1];
u[i]=a[i][i]-q[i]*a[i-1][i];
y[i]=b[i]-q[i]*y[i-1];
}
x[ge]=y[ge]/u[ge];
for(i=ge-1;i>=0;i--)
x[i]=(y[i]-a[i][i+1]*x[i+1])/u[i];
for(i=0;i<9;i++)
{
if (i==5)
printf(
);
printf(
x%d=%-10.6f,i,x[i]);
}
}
int sign(double x)
{
int
z;
z=(x>=(1e-6)?1:-1);
return(z);
}
2
.打印结果:
Household:
12.38412 -4.89308 0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
- 5 -
数值分析实习报告
-4.89308 25.39842 6.49410
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
6.49410
20.61150 8.24393
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
8.24393
23.42284
-13.880070.00000
0.00000
0.00000
-0.00000
0.00000
0.00000
0.00000
-13.8800729.69828 4.53450
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
4.53450
16.00612 4.88144
0.00000
0.00000
学资学习网
0.00000
0.00000
0.00000
0.00000
0.00000
4.88144
26.01332
-4.50363 -0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
0.00000
-4.50363
21.25406 4.50450
0.00000
0.00000
0.00000
-0.00000
0.00000
0.00000
-0.00000 4.50450
14.53412
x0=1.073409
x1=2.272579
x2=
-2.856601
x3=2.292514
x4=2.112165
x5= -6.422586
x6=1.357802
x7=0.634259
x8=
-0.587042
x0=1.075799
x1=2.275744
x2= -2.855515
x3=2.293099
x4=2.112634
x5= -6.423838
x6=1.357923
x7=0.634244
x8= -0.587266
四、问题讨论:
< br>此程序具有很好的通用性。在
GS
方法的基础上,已经求
出
x
的第
m
解
,第
m-1
基础上,经过
重新组合得新
的序列,而在此新序列收敛速度加快。
上机实习题二
一、题目:
已知函数值如下表:
x
f(x)
x
f(x)
f'(x)
试用三次样条插值求
f(4.563)
及
< br>f
′
(4.563)
的近似值。
1
0
6
1.791795
f'(1)=1
2
0.6931478
7
1.9459101
3
1.0986123
8
2.079445
4
1.3862944
9
2.1972246
5
1.6094378
10
2.3025851
f'(0)=0.1
二、解题方法的理论依据:
任意划分的三弯矩插值法以及方程组解法中的三对角阵追赶算法。
应用三次样条插值法能够对函数产生很好的逼近效果。而追赶
算法又具有计算量少、方法简单、
算法稳定的特点。
方法应用条件:适用于求复杂函数在给定区间内某一点的函数
值,给出函数
f(x)
在区间
[a,b
]
中的
n
个插值点,并且给出函数在区
间端点处的值。
三、
1
.计算程序:
#include stdio.h
#include math.h
#define n 11
- 6 -
数值分析实习报告
学资学习网
-inst
-inst
-inst
-inst
-inst
-inst
-inst
-inst
-
上一篇:海南省总体规划(2015-2030)纲要DOC
下一篇:单整和协整