實驗專案:
a) 列主元高斯消去法
b) 矩陣直接三角分解法
c) 雅可比迭代法
d) 高斯—賽德爾迭代法
e) sor迭代法
f) 冪法求最大特徵值
實驗名稱——列主元高斯消去法
實驗目的:熟悉了解高斯消去法的原理,並知道如何用高斯消去法求方程組的解;
實驗所用的軟體:win-tc 版本:1.9.0.0
例項用高斯消去法求方程的解。
演算法①選主元。
2 主元如果為零,矩陣奇異,程式結束;否則③
3 交換第k行與主元i,k位置。
4 消元。
程式#include
#include
#include
#include
main()
; float * colpivot(float *,int);
x=colpivot(c[0],3);
clrscr();
for(i=0;i<=2;i++)printf("x[%d]=%f\n",i,x[i]);
getch();
}float * colpivot(float * c,int n)
for(j=i+1;j<=n-1;j++)
} for(i=n-1;i>=0;i--)
return x;
}數值結果
x[0]=15.125114
x[1]=3.373717
x[2]=-2.751399。
分析本演算法求解簡單有效,但顯然演算法複雜度過高。
實驗名稱——矩陣直接三角分解法
實驗目的:熟悉了解矩陣直接三角分解的原理,並知道如何用矩陣直接三角分解求方程的根;
實驗所用的軟體:win-tc 版本:1.9.0.0
例項用矩陣直接三角分解求方程的解。
演算法1 將方程組ax=b的a分解為a=lu,其中l為單位下三角矩陣,u為上三角矩陣,則方程組ax=b化為解兩個方程組ly=b,ux=y,
程式#include
#include
#include
void main()
;float *directlu(float *,int);
x=directlu((float *)a,4);
clrscr();
for(i=0;i<=3;i++)printf("x[%d]=%f\n",i,x[i]);
getch();
}float * directlu(float * u,int n)
}for(i=n-1;i>=0;i--)
return x;
}數值結果
x[0]=6.118565
x[1]=1.017161
x[2]=-0.042714
x[3]=-3.941310
分析與高斯法比較本演算法為其改進模式,同樣演算法複雜度高。
實驗名稱——雅可比迭代法
實驗目的:熟悉了解雅可比迭代法的原理,並知道如何用雅可比迭代法求方程的解;
實驗所用的軟體:win-tc 版本:1.9.0.0
例項用雅可比迭代法求方程的解。
演算法將方程組ax=b的j法迭代公式寫出並帶入。
程式#include
#include
int main()
, b[16] = , init[16] = ;
float sum = 0 , sum1 = 0 , eps2 = 0.0 , t = 0;
double eps = 0.0001 ;
int col = 0 , i = 0 , j = 0 , k = 0;
printf("the matrix's col is : ");
scanf("%d" , &col);
printf("the matrix is \n");
for(i = 0 ; i < col ; i ++)
}printf("the b is \n");
for(i = 0 ; i < col ; i ++)
printf("the initvalue is \n");
for(i = 0 ; i < col ; i ++)
for(k = 0 ; k < 10 ; k ++)
printf("\n");
if(eps2 < eps)
break;
}for(i = 0 ; i < col ; i ++)
printf("\n");
getch();
}數值結果
5.2500 3.8125 -5.0469
3.1406 3.8828 -5.0293
3.0879 3.9268 -5.0183
3.0549 3.9542 -5.0114
3.0343 3.9714 -5.0072
3.0215 3.9821 -5.0045
3.0134 3.9888 -5.0028
3.0084 3.9930 -5.0017
3.0052 3.9956 -5.0011
3.0033 3.9973 -5.0007
數值結果為3.0033 3.9973 -5.0007
分析本演算法簡單,但是收斂速度慢。
實驗名稱——高斯—賽德爾迭代法
實驗目的:熟悉了解高斯—賽德爾的原理,並知道如何用高斯—賽德爾迭代求方程的解;
實驗所用的軟體:win-tc 版本:1.9.0.0
例項用s迭代法求方程的解。
演算法將方程組ax=b的s法迭代公式寫出並帶入。
程式#include
數值分析實驗報告
實驗一題目一 已知函式表如下 試用三次lagrange插值多項式求x 0.5635時的函式值。解 lagrange插值法公式 程式框圖如下 本題中n 4 分析設計思想 設計思路如上面的流程圖所示,用我們學過的c語言程式設計實現。程式清單 include include include float l...
數值分析實驗報告
數值分析 課程設計實驗報告模板 常微分方程資料值解 用龍格 庫塔法分析lorenz方程的特性 一 考慮著名的lorenz方程 其中s,r,b為變化區域內有一定限制的實引數,該方程形式簡單,表面上看並無驚人之處,但由該方程揭示出的許多現象,促使 混沌 成為數學研究的嶄新領域,在實際應用中產生了巨大的影...
數值分析實驗報告
課題一 解線性方程組的直接方法 1.實驗目的 1 通過該課題的實驗,體會模組化結構程式設計方法的優點 2 運用所學的計算方法,解決各類線性方程組的直接演算法 3 提高分析和解決問題的能力,做到學以致用 4 通過三對角形線性方程組的解法,體會稀疏線性方程組解法的特點。2.實驗過程 實驗 include...