課題一:解線性方程組的直接方法
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["
}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["
}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["
}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 例項用高斯...