數值分析實驗報告

2021-03-04 05:37:21 字數 2498 閱讀 9000

東北大學軟體學院

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 例項用高斯...