數值分析Jacobi迭代法c c 實現

2021-10-09 19:12:20 字數 1533 閱讀 1880

matlab還沒學精通,正好好久沒寫**了,藉此溫習溫習。

#include

"jacobi.h"

#include

#include

#include

using

namespace std;

using std::vector;

vector<

double

> matrix_a;

vector<

double

> vector_b;

jacobi::

jacobi()

void jacobi::

input_matrix_a()

pointer_a =

&matrix_a[0]

; cout <<

"輸入的矩陣為"

<< endl;

output_matrix

(pointer_a);}

void jacobi::

input_vector_b()

pointer_b =

&vector_b[0]

; cout <<

"輸入的列向量為"

<< endl;

output_vector

(pointer_b);}

void jacobi::

structure_iterator()

pointer_a[i * order + i]=0

;}cout <<

"絕對誤差限"

;double e;

cin >> e;

vector<

double

>

vector_xk

(order,0)

;int n =

0,k=0;

//n為滿足絕對誤差的解的個數,k為迭代次數

do vector_xk1[i]

+= pointer_b[i];}

for(

int i =

0; i < order; i++)}

vector_xk = vector_xk1;

k++; cout <<

"k="

<< k << endl;

output_vector

(&vector_xk[0]

);}while

(nvoid jacobi::

output_matrix

(double

* p)

cout << endl;}}

void jacobi::

output_vector

(double

* q)

cout << endl;

}```

```cpp

#ifndef _jacobi_h_

#define _jacobi_h_

class

jacobi

;#endif

數值分析 迭代法求解 Python實現

僅供參考 配置環境 coding utf 8 迭代法 author hhuaf import numpy as np import matplotlib.pyplot as plt input x0 初始值 theta 閾值 x0 float input 輸入初始點 例如5,10,15,20。n t...

數值作業 牛頓迭代法

記錄學習過程 寫於2020.11.14 include 呼叫標準函式庫,使輸入輸出函式可用 include 呼叫數學函式庫 define n 100 define eps 1e 6 定義全域性變數eps 根的容許誤差 delta 函式絕對值的容許誤差 define eta 1e 8 double a...

C 解方程組之Jacobi迭代法

迭代過程 首先將 方程組中的 係數矩陣 a分解成三部分,即 a l d u,如圖1所示,其中 d為對角陣,l為下三角矩陣,u為上三角矩陣。之後確定迭代格式,x k 1 b x k f 這裡 表示的是上標,括號內數字即迭代次數 如圖2所示,其中 b稱為迭代矩陣,雅克比迭代法中一般記為 j。k 0,1,...