}
}
for(j=k+1;j<=n;j++)tmp+=a[k][j]*l[j]; l[k]=(a[k][n+1]-tmp)/a[k][k];
for(i=1;i<=n;i++)printf(\
运行结果如下:
2.000000 2.000000 3.000000 3.000000 4.000000 7.000000 7.000000 1.000000 -2.000000 4.000000 5.000000 -7.000000 l[2][1]=2.000000
2.000000 2.000000 3.000000 3.000000 0.000000 3.000000 1.000000 -5.000000 -2.000000 4.000000 5.000000 -7.000000 l[3][1]=-1.000000
2.000000 2.000000 3.000000 3.000000 0.000000 3.000000 1.000000 -5.000000 0.000000 6.000000 8.000000 -4.000000 l[3][2]=2.000000
2.000000 2.000000 3.000000 3.000000 0.000000 3.000000 1.000000 -5.000000 0.000000 0.000000 6.000000 6.000000 x[1]=2.000000 x[2]=-2.000000 x[3]=1.000000
- 7 -
实验三 线性方程组的迭代解法
【目的与要求】
1.了解雅可比迭代法、高斯-赛德尔迭代法等线性方程组迭代求解的基本方法、基本原理;
2.能够按照工程实际要求,选择适当的算法; 3.通过编写程序,进行算法设计和数值求解。 【实验内容】
使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。
?10x1?x2?2x3?7.2???x1?10x2?2x3?8.3 ??x?x?5x?4.2123?【内容提示】
雅可比迭代法的公式如下:
??x???(k?1)in1?(bi??aaiij?1j?iijx(k)j)
i?1,2,?n,k?0,1,2,?高斯-赛德尔迭代法的公式如下:
i?11?(k?1)?[bi??aijx(jk?1)??xiaii?j?1?i?1,2,?n?j?i?1?anijx(jk)]
- 8 -
实验四 代数插值
【目的与要求】
1.了解拉格朗日插值法或牛顿插值法的基本方法、基本原理; 2.通过编写程序,进行算法设计和数值求解。 【实验内容】
使用拉格朗日插值法或牛顿插值法求解:已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.596)的近似值。 x f(x)
0.40 0.41075 0.55 0.57815 0.65 0.69675 0.80 0.88811 0.90 1.02652 1.05 1.25386 【内容提示】
拉格朗日基函数为:
li(x)?(x?x0)(x?x1)?(x?xi?1)(x?xi?1)?(x?xn)(xi?x0)(xi?x1)?(xi?xi?1)(xi?xi?1)?(xi?xn)
i?0,1,?,n拉格朗日插值多项式为:
Ln(x)?y0l0(x)?y1l1(x)???ynln(x)??yili(x)
i?0n
提醒: 每个实验结束后,应整理出实验报告,实验报告模版到学校教务处网站下载。
- 9 -