jacobi matlab程序,jacobi迭代法实验MATLAB程序数值分析
jacobi迭代法實驗MATLAB程序數值分析
例1. 求線性方程組 得近似解。精確解為x*=[3,2,1]’。 解:對方程進行移項就得 記為Ax=b,或寫為x=B0 x+f,其中 取初始值,代入原方程組可得再將把它代入可得.反復利用這個計算過程,得到一向量序列和一般的計算公式(迭代公式) 簡寫為迭代到第10次有 從此例看出,由迭代法產生的向量序列x(k)逐步逼近方程組的精確解x*. 6.1常用迭代法 定義1 (ⅰ)對于給定的方程組x=Bx+f ,用公式逐步代入 求近似解的方法稱為迭代法(或稱為一階定常迭代法,這里B 與k無關). (ⅱ)如果 存在(記為x*),稱此迭代法收斂,顯然x*就是方 程組的解,否則稱此迭代法發散. 迭代法的流程圖為: ①為初始向量, ②是判斷條件, 即時停止運行 ③k 是循環次數。 ④中帶入初始值,然后賦給 ① Jacobi迭代法 對一般方程組 從第一個方程解出x1,第二個方程解出x2,…,記成 用矩陣寫法即x=Bx+g,B的對角元皆零,可拆成 B=L+UL是B下三角部分,U是B上三角部分Jacobi迭代法如下述. 任取初始近似x(0),對k=1,2,…計算 直至║x(k+1)-x(k)║≤ε,預定的精度.用矩陣記號,即任取初始近似x(0),對k=1,2,…計算 x(k+1)=Bx(k)+g, 直至║x(k+1)-x(k)║≤ε(通常對迭代法限定最大迭代次數也是必要的).Jacobi迭代法的流程圖為: 在以上的流程圖中,先讀入數據,即先輸入系數矩陣A,常數向量b, 初始值,停止條件和最大循環次數。圖中是,在我們迭代公式中的。k 是循環次數,N 是最大循環次數。 例2. 利用Jacobi方法求方程組 的近似解。 解 把原方程改為 任取初始近似x(0),對k=1,2,…計算 直至║x(k+1)-x(k)║≤ε,預定的精度. 此即Jacobi迭代法.計算結果如下表. k x1(k) x2(k) x3(k) 0 0 0 0 1 0.720000000000 0.830000000000 0.840000000000 2 0.971000000000 1.070000000000 1.150000000000 3 1.057000000000 1.157100000000 1.248200000000 4 1.085350000000 1.185340000000 1.282820000000 5 1.095098000000 1.195099000000 1.294138000000 6 1.098337500000 1.198337400000 1.298039400000 7 1.099441620000 1.199441630000 1.299334980000 8 1.099811159000 1.199811158000 1.299776650000 9 1.099936445800 1.199936445900 1.299924463400 10 1.099978537270 1.199978537260 1.299974578340 11 1.099992769394 1.199992769395 1.299991414906 二 實驗部分 本章實驗內容: 實驗題目:Jacobi迭代法,Gauss-Saidel迭代法,SOR迭代法。 實驗內容:利用MATLAB ,編制求Ax=b的各迭代計算方法的程序。 實驗目的:了解迭代法的運用性,進行各迭代法數值結果的比較,并找出一個計算量小的,使迭代法加速收斂的迭代方法。 編程要求:①利用迭代法,初始向量為x(0) ②同時利用Jacobi法和Gauss-Seidel法來進行對比。 ③利用SOR迭代法來進行對比。 計算算法:①Jacobi迭代法的算法為: ②Gauss-Saidel迭代法的算法為: ③SOR迭代法的算法為: 實驗例題⑴: 條件:取 實驗例題⑵: 條件:取選擇適當的松弛因子。 程序①: function [X,Y]=JacobiGS(A,b,p,p1,del,max) % A為線性方程組的系數矩陣,b為自由項,p和p1為兩種迭代法的初始解,del為限制數,max為循環的限制次數。 n=length(b); for k1=1:max for j=1:n Y(j)=(b(j)-A(j,[1:j-1])*p1(1:j-1)-A(j,[j+1:n])*p1(j+1:n))/A(j,j); if j==1 X(1)=(b(1)-A(1,[2:n])*p(2:n))/A(1,1); elseif j==n X(n)=(b(n)-A(n,[1:n-1])*(X(1:n-1)) )/A(n,n); else X(j)=(b(j)-A(j,[1:j-1])*(X(1:j-1)) -A(j,[j+1:n])*p(j+1:n))/A(j,j); end err=abs(norm(X -p)); reerr=err/(norm(X)+eps); p=X ; if (err
下載提示(請認真閱讀)1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內容而直接下載帶來的問題本站不予受理。
2.下載的文檔,不會出現我們的網址水印。
下載文檔到電腦,查找使用更方便
10 積分
還剩頁未讀,繼續閱讀 關?鍵?詞:jacobi迭代法 MATLAB程序 jacobi迭代法MATLAB程序 matlab編程 Jacobi 迭代法matlab程序 數值分析 matlab程序 數值分析 雅可比迭代法
? 螞蟻文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
總結
以上是生活随笔為你收集整理的jacobi matlab程序,jacobi迭代法实验MATLAB程序数值分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 心电信号越界怎么回事_心电监护仪常见故障
- 下一篇: java容器怎么封装的_docker怎么