计算数值方法实验指导书解析Word文件下载.docx
- 文档编号:18594330
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:10
- 大小:34.81KB
计算数值方法实验指导书解析Word文件下载.docx
《计算数值方法实验指导书解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算数值方法实验指导书解析Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
77
-69
-84
-65
b=
-349
84
-100
-15
-31
-26
-5
-95
-25
30
-86
-34
-4
357
-21
7
-75
88
630
-85
95
-47
24
12
-66
-114
-57
4
-11
54
340
④
(n=5,10,100,…)
(3)线性方程组的迭代解法
使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。
(4)矩阵特征值与特征向量问题
使用幂法求A模为最大的特征值及其相应的特征向量。
2
3
5
10
6
1
(5)代数插值
使用拉格朗日插值法或牛顿插值法求解:
已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.596)的近似值。
x
0.40
0.55
0.65
0.80
0.90
1.05
f(x)
0.41075
0.57815
0.69675
0.88811
1.02652
1.25386
(6)最小二乘法拟合多项式
给定数据点(xi,yi),用最小二乘法拟合数据的多项式,并求平方误差。
xi
0.5
0.6
0.7
0.8
0.9
1.0
yi
1.75
1.96
2.19
2.44
2.71
3.00
三、实验要求
(1)应用结构化程序设计编出通用程序,源程序要有详细的注释和说明;
(2)比较计算结果,分析数值解误差的原因;
(3)实验完成,要求提交实验结果并写出报告,分析计算结果是否符合问题的要求,找出计算成功的原因或计算失败的教训。
四、示例程序
(1)Gauss消元法
#include"
stdafx.h"
stdio.h"
doublea[15][15],a0[15][15];
doubleb[15],b0[15],l[15];
intn;
voiddisplayA()
{
printf("
\n"
);
for(intj=1;
j<
=n;
j++)
{
for(inti=1;
i<
i++)
printf("
a[%d][%d]=%f"
j,i,a[j][i]);
b[%d]=%f\n"
j,b[j]);
}
for(j=1;
j++)
l[%d]=%f"
j,l[j]);
}
voidmain()
{
FILE*f;
inti,j,k;
f=fopen("
Gaussdata.txt"
"
r"
fscanf(f,"
%d"
&
n);
for(i=1;
for(j=1;
{
fscanf(f,"
%lf"
a[i][j]);
a0[i][j]=a[i][j];
}
fscanf(f,"
b[i]);
b0[i]=b[i];
displayA();
fclose(f);
k=1;
do
for(i=1;
if(i==k)continue;
l[i]=a0[i][k]/a0[k][k];
for(j=k+1;
j++)a[k][j]=a0[k][j]/a0[k][k];
b[k]=b0[k]/a0[k][k];
for(j=k+1;
a[i][j]=a0[i][j]-l[i]*a0[k][j];
b[i]=b0[i]-l[i]*b0[k];
displayA();
a0[i][j]=a[i][j];
b0[i]=b[i];
if(k==n)break;
k++;
}while
(1);
b[%2d]=%lf\n"
i,b[i]);
(2)追赶法
main()
doublea[15],b[15],c[15],d[15];
doublet;
inti,n;
/**********************************************/
zgf.txt"
%lf%lf%lf"
b[1],&
c[1],&
d[1]);
for(i=2;
=n-1;
%lf%lf%lf%lf"
a[i],&
b[i],&
c[i],&
d[i]);
a[n],&
b[n],&
d[n]);
/*********************************************/
c[1]=c[1]/b[1];
d[1]=d[1]/b[1];
t=b[i]-c[i-1]*a[i];
c[i]=c[i]/t;
d[i]=(d[i]-d[i-1]*a[i])/t;
d[n]=(d[n]-d[n-1]*a[n])/(b[n]-c[n-1]*a[n]);
for(i=n-1;
i>
=1;
i--)d[i]=d[i]-c[i]*d[i+1];
\n********************************\n"
d[%2d]=%lf\n"
i,d[i]);
(3)最小二乘法
math.h"
#definenum10
floatneiji(floatb[num],floatc[num])/*内积函数*/
intp;
floatnj=0;
for(p=1;
p<
num;
p++)
nj+=c[p]*b[p];
returnnj;
floatpower(float&
a,intn)
floatb=1;
for(inti=0;
n;
b*=a;
returnb;
floatx[num],y[num],sumX[num],sumY[num];
inti,j,n,index;
charconti;
conti='
'
;
请输入已知点的个数n=\n"
scanf("
请输入x和y:
"
sumX[1]=sumY[1]=0;
{
x[%d]="
i);
scanf("
%f"
x[i]);
sumX[1]+=x[i];
y[%d]="
y[i]);
sumY[1]+=y[i];
sumX[1]=%f"
sumX[1]);
sumY[1]=%f"
sumY[1]);
请输入拟和次数="
index);
i=n;
sumX[0]=i;
=2*index;
sumX[i]+=power(x[j],i);
sumX[%d]=%f"
i,sumX[i]);
=index+1;
sumY[i]+=power(x[j],i-1)*y[j];
sumY[%d]=%f"
i,sumY[i]);
w"
fprintf(f,"
%i\n"
index+1);
for(i=0;
=index;
for(j=i;
=index+i;
fprintf(f,"
%f"
sumX[j]);
fprintf(f,"
%f\n"
sumY[i+1]);
//利用求解线性方程组的方法求解…
五、实验报告要求
实验报告内容要求
一、课题名称
二、班级、姓名
三、目的和意义
四、计算公式
五、结构程序设计
六、结果讨论和分析
如初值对结果的影响;
不同方法的比较;
该方法的特点和改进;
整个实验过程中(包括程序编写,上机调试等)出现的问题及其处理等广泛的问题,以此扩大知识面和对实验环节的认识。
六、参考资料
1.魏毅强,张建国,张洪斌.数值计算方法.北京:
科学出版社,2004.8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 数值 方法 实验 指导书 解析