東北大學軟體學院
2023年5月
一、課題名稱
解線性方程組的迭代法
二、目的和意義
了解各迭代法的基本原理和特點,判斷雅克比迭代、高斯-塞德爾迭代對任意初始向量的收斂性,完成雅克比迭代、高斯-塞德爾迭代演算法的程式實現
三、計算公式
● 雅可比
xi(k+1)=1/aii(bi-σaijxj(k))
● 高斯-塞德爾
xi(k+1)=1/aii(bi-σaijxj(k+1)-σaijxj(k))
● 超鬆弛迭代
xi(k+1)=(1-w)xi(k)+w*(bi-σaijxj(k+1)-σaijxj(k)) /aii
四、結構程式設計
1、主程式流程圖
圖1-1 主程式流程圖
2、jacobi迭代演算法流程:
圖1-2 jacobi 迭代法流程圖
3、gauss-seidel迭代演算法流程同jacobi演算法:
4、sor迭代演算法:
圖1-4 sor迭代法流程圖
5、**:
#include
using namespace std;
#define n 40
const int n=10;
int jacobi(float *p,float b,float x,float x,int n);
int gs(float *p,float b,float x,float x,int n);
int sor(float *p,float b,float x,float x,int n);
void print(float *a,int r);
void main()
; float a[10]=;
float x1[10]=;
float x1[10];
float b[8][8]=;
float b[8]=;
float x2[8]=;
float x2[8];
float c[10][10]=;
float c[10]=;
float x3[10];
float x3[10]=;
float *p[3];
p[0]=&a[0][0];
p[1]=&b[0][0];
p[2]=&c[0][0];
cout<<"jacobi迭代法解第乙個方程:"< jacobi(p[0],a,x1,x1,10);
cout<<"jacobi迭代法解第二個方程:"< jacobi(p[1],b,x2,x2,8);
cout<<"jacobi迭代法解第三個方程:"< jacobi(p[2],c,x3,x3,10);
cout<<"gauss-seidel迭代法解第乙個方程:"< gs(p[0],a,x1,x1,10);
cout<<"gauss-seidel迭代法解第二個方程:"< gs(p[1],b,x2,x2,8);
cout<<"gauss-seidel迭代法解第三個方程:"< gs(p[2],c,x3,x3,10);
cout<<"sor迭代法解第乙個方程:"< sor(p[0],a,x1,x1,10);
cout<<"sor迭代法解第二個方程:"< sor(p[1],b,x2,x2,8);
cout<<"sor迭代法解第三個方程:"< sor(p[2],c,x3,x3,10);
}int jacobi(float *p,float b,float x,float x,int n)
x[i]=x[i]+(b[i]-m)/(*(p+i*n+i));
r=x[i]-x[i];
if(r<0)
r=x[i]-x[i];
if(r>r)
r=r;
}if(r<=e&&r>0)
for(j=0;j<10;j++)
x[j]=x[j];
} print(x,n);
cout<<"迭代次數為:"< cout<<"方程解發散,無法用jacobi方法解此方程!"< return 0;
}int gs(float *p,float b,float x,float x,int n)
if(r<=e&&r>0)
print(x,n);
cout<<"迭代次數為:" }for(j=0;j<8;j++) x[j]=x[j]; print(x,n); cout<<"迭代次數為:"< cout<<"方程解發散,無法用gauss-seidel方法解此方程!"< return 0; }int sor(float *p,float b,float x,float x,int n) if(r<=e&&r>0) print(x,n); cout<<"迭代次數為:" }print(x,n); cout<<"迭代次數為:"< cout<<"方程解發散,無法用xor方法解此方程!"< 實驗一題目一 已知函式表如下 試用三次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 例項用高斯...數值分析實驗報告
數值分析實驗報告
數值分析實驗報告