數值分析實驗報告

2021-03-04 01:01:44 字數 2811 閱讀 3307

實驗專案:

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...