《091三对角方程组的追赶法.doc》由会员分享,可在线阅读,更多相关《091三对角方程组的追赶法.doc(7页珍藏版)》请在三一办公上搜索。
1、2013-2014(1)专业课程实践论文题目:三对角方程组的追赶法一、算法理论在一些实际问题中,例如解常微分方程边值问题,解热传导方程以及船体数学放样中建立三次样条函数等,都会要求解系数矩阵为对角占优的三对角线方程组,简记为。求解:等价于解两个三角形方程组;.从而得到解三对角线方程组的追赶法公式:(1) 计算的递推公式(2) 解(3) 解我们将计算系数将计算方程组的解二、 算法框图三、 算法程序#include #include #include#define N 20double aN, bN, cN-1, fN, rN;int n;int i;void LUDecompose();/ LU
2、分解void backSubs();/ 回代void main()printf(请输入方程的维数n);scanf(%d,&n);getchar();if(nN|n=0)printf(由于该维数过于犀利, 导致程序退出!);return;printf(n输入下三角元素n);printf(输入%d个a值: , n-1);for (i=1; in; i+)scanf(%lf, &ai);getchar(); printf(n输入主对角线元素n);printf(输入%d个b值: , n);for (i=0; in; i+)scanf(%lf, &bi);getchar(); printf(n输入上三角
3、元素n);printf(输入%d个c值: , n-1);for (i=0; in-1; i+)scanf(%lf, &ci);getchar();printf(n输入%d个方程组右端项: n, n);for (i=0; in; i+)scanf(%lf, &fi);getchar();LUDecompose();backSubs();printf(n线性方程组的解为: n);for (i=0; in; i+)printf(x%d=%lfn, i+1, fi);void LUDecompose()/被b取代, 被c取代, 以节省存储空间c0=c0/b0;for(i=1;in-1;i+)ri=ai
4、;bi=bi-ri*ci-1;ci=ci/bi;ri=ai;bi=bi-ri*ci-1;void backSubs()/ y被f取代, x也被f取代, 以节省存储空间待添加的隐藏文字内容2f0=f0/b0;for(i=1; i=0;i-)fi=fi-ci*fi+1;四、 算法实现例1用该程序计算三对角线方程组, 计算其方程组的解。解:运行程序(1) 显示出 请输入方程组的维数:n=5,回车。(2) 显示出 请输入下三角元素 输入4个a值:-1 -1 -1 -1,回车。(3) 显示出 请输入主对角线元素 输入5个b值:2 2 2 2 2 ,回车。(4) 显示出 请输入上三角元素 输入4个c值:-1 -1 -1 -1,回车。(5) 显示出 请输入5个方程组右端顶:1 0 0 0 0,回车。其解为上机运行截图例2用该程序计算三对角线方程组, 计算其方程组的解。解:运行程序(1)显示出 请输入方程组的维数:n=5.,回车。(2)显示出 请输入下三角元素 输入4个a值:1 1 1 1,回车。(3)显示出 请输入主对角线元素 输入5个b值:3 3 3 3 3 ,回车。(4)显示出 请输入上三角元素 输入4个c值:1 1 1 1,回车。(5)显示出 请输入5个方程组右端顶:1 1 0 0 0,回车。其解为上机运行截图