數值分析實驗報告

2021-03-04 04:42:54 字數 2568 閱讀 6309

課題一:解線性方程組的直接方法

1.實驗目的:

1、通過該課題的實驗,體會模組化結構程式設計方法的優點;

2、運用所學的計算方法,解決各類線性方程組的直接演算法;

3、提高分析和解決問題的能力,做到學以致用;

4、通過三對角形線性方程組的解法,體會稀疏線性方程組解法的特點。

2.實驗過程:

實驗**:

#include "stdio.h"

#include "math.h"

#include

using namespace std;

//gauss法

void lzy(double **a,double *b,int n)

if(temp==0)

else

for(i=k+1;i

}if(a[n-1][n-1]==0)

x[n-1]=b[n-1]/a[n-1][n-1];

for(i=n-2;i>=0;i--)

for(i=0;i

}//平方根法

void pfg(double **a,double *b,int n)

temp=0;

for(m=0;mtemp=temp+a[k][m]*y[m];

y[k]=(b[k]-temp)/a[k][k];

}x[n-1]=y[n-1]/a[n-1][n-1];

for(k=n-2;k>=0;k--)

for(i=0;i

}//追趕法

void zgf(double **a,double *b,int n)

a1[0]=a0[0];

for(i=0;i

y[0]=b[0]/a1[0];

for(i=1;i y[i]=(b[i]-d[i]*y[i-1])/a1[i];

x[n-1]=y[n-1];

for(i=n-2;i>=0;i--)

x[i]=y[i]-b1[i]*x[i+1];

for(i=0;i

}int main()

cout<<"第一題(gauss列主元消去法):"< cout<<"請輸入階數 n:"< cin>>n;

cout<<"\n請輸入係數矩陣 :\n\n";

for(i=0;i for(j=0;jcout<<"p[">a[i][j] ;

}cout<<"\n請輸入b矩陣:" ;

for(i=0;i

lzy(a,b1,10);

cout<<"\n\n第二題的解:(平方根法):"< cout<<"請輸入階數 n:"< cin>>n;

cout<<"\n請輸入係數矩陣 :\n\n";

for(i=0;i for(j=0;jcout<<"p[">b[i][j] ;

}cout<<"\n請輸入b矩陣:" ;

for(i=0;i

pfg(b,b2,8);

cout<<"\n\n第三題的解:(追趕法):"< cout<<"請輸入階數 n:"< cin>>n;

cout<<"\n請輸入係數矩陣 :\n\n";

for(i=0;i for(j=0;jcout<<"p[">c[i][j] ;

}cout<<"\n請輸入b矩陣:" ;

for(i=0;i

zgf(c,b3,10);

return 0;

}實驗結果:

3.實驗總結:

結果分析:

從執行結果可以看出,對方程組一和方程組三解得的結果和題中提供的理論值基本相符,解誤差可以忽略,但方程組二採用平方根方法的到的結果與理論值相差甚遠,原因是方程組的係數矩陣a的條件數cond(a)非常大,導致係數矩陣a是乙個病態矩陣,方程組是乙個病態方程組。

實驗心得:通過本次實驗,我不僅掌握了模組化程式設計的方法,還了解了求解線性方程組的方法,明確了高斯消去法選主元的必要性。

課題三:解線性方程組的迭代法

1.實驗目的:

1、通過上機計算體會迭代法求解線性方程組的特點,並能和消去法比較;

2、運用所學的迭代法演算法,解決各類線性方程組,編出演算法程式;

3、體會上機計算時,終止步驟< 或k >(予給的迭代次數),對迭代法斂散性的意義;

2.實驗過程:

實驗**:

#include

#include

using namespace std;

#define maxsize 2000

// jacobi迭代法所對應的函式

void jacobi(double e,int n,double a[50],double b)

; for(k=0;k

for(i=0;ix[0][i]=x[1][i];

if(bestf<=e)

break;

k++;

}for(i=0;i cout< cout< cout<<"迭代了"<}

// gaussseidol所對應的函式

void gaussseidol(double e,int n,double a[50],double b)

數值分析實驗報告

實驗一題目一 已知函式表如下 試用三次lagrange插值多項式求x 0.5635時的函式值。解 lagrange插值法公式 程式框圖如下 本題中n 4 分析設計思想 設計思路如上面的流程圖所示,用我們學過的c語言程式設計實現。程式清單 include include include float l...

數值分析實驗報告

數值分析 課程設計實驗報告模板 常微分方程資料值解 用龍格 庫塔法分析lorenz方程的特性 一 考慮著名的lorenz方程 其中s,r,b為變化區域內有一定限制的實引數,該方程形式簡單,表面上看並無驚人之處,但由該方程揭示出的許多現象,促使 混沌 成為數學研究的嶄新領域,在實際應用中產生了巨大的影...

數值分析實驗報告

實驗專案 a 列主元高斯消去法 b 矩陣直接三角分解法 c 雅可比迭代法 d 高斯 賽德爾迭代法 e sor迭代法 f 冪法求最大特徵值 實驗名稱 列主元高斯消去法 實驗目的 熟悉了解高斯消去法的原理,並知道如何用高斯消去法求方程組的解 實驗所用的軟體 win tc 版本 1.9.0.0 例項用高斯...