国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

松弛(SOR)迭代法

這篇具有很好參考價(jià)值的文章主要介紹了松弛(SOR)迭代法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

? ? ? ? 松弛迭代法是在雅可比迭代法和高斯——賽德?tīng)柕ǖ幕A(chǔ)上,以w>0為松弛因子,建立迭代格式如下:

松弛(SOR)迭代法

松弛(SOR)迭代法

松弛(SOR)迭代法

? ? ? ? 我們將線性方程組AX=b的系數(shù)矩陣A分解成一個(gè)對(duì)角矩陣D、一個(gè)下三角矩陣L和一個(gè)上三角矩陣D,即A=D-L-U,則有:

松弛(SOR)迭代法??

??松弛(SOR)迭代法

??松弛(SOR)迭代法

??松弛(SOR)迭代法

??松弛(SOR)迭代法

? ? ? ? 當(dāng)w=1時(shí),松弛迭代法即為高斯——賽德?tīng)柕?;?dāng)w>1時(shí)為超松弛迭代法,當(dāng)w<1時(shí)為低松弛迭代法。

? ? ? ? SOR方法收斂的必要條件是:0<w<2。

1. 松弛(SOR)迭代法的matlab代碼

function [X0,err]=sor(A,b,X0,w,max1)
%輸入  -A代表線性方程組AX=b的系數(shù)矩陣
%      -b代表線性方程組AX=b右側(cè)的數(shù)值
%      -X0代表線性方程組AX=b進(jìn)行松弛迭代法求解的迭代初值
%      -w代表松弛因子
%      -max1代表迭代的次數(shù)
%輸出  -X0代表通過(guò)松弛迭代法求解線性方程組AX=b的解
[N,N]=size(A);
L=-tril(A,-1);
U=-triu(A,1);
D=A+L+U;
B=inv(D-w*L)*((1-w)*D+w*U);
f=inv(D-w*L)*w*b;
for k=1:max1
    X0=B*X0+f;
end
err=abs(norm(A(:,:)*X0(:)-b(:),2))

? ? ? ? 在命令行窗口中輸入:

>> A=[4 -1 1;4 -8 1;-2 1 5];

>> b=[7 -21 15]';

>> X0=[0 0 0]';

>> w=1.2;

>> max1=20;

>> sor(A,b,X0,w,max1)

? ? ? ? 最后得到的結(jié)果如下:

err =

? ?2.3375e-09


ans =

? ? 2.0000
? ? 4.0000
? ? 3.0000

2. 松弛(SOR)迭代法的python代碼

import numpy as np

def sor(A,b,X0,w,max1):
    '''A代表線性方程組AX=b的系數(shù)矩陣
           b代表線性方程組AX=b右邊的部分
           X0代表高斯—賽德?tīng)柕某跏贾?           w代表松弛因子
           max1代表迭代的次數(shù)'''
    n=np.shape(A)[0]
    L=-np.tril(A,-1)
    U=-np.triu(A,1)
    D=A+L+U
    B=np.dot(np.linalg.inv(D-w*L),((1-w)*D+w*U))
    f=np.dot(np.linalg.inv(D-w*L),w*b)
    for i in range(max1):
        X0=np.dot(B,X0)+f
    err=np.linalg.norm(np.dot(A,X0)-b,ord=2)
    return X0,err

n=3
#線性方程組AX=b右邊的部分
b=np.array([[7],[-21],[15]])
#線性方程組的系數(shù)矩陣
A=np.array([[4,-1,1],[4,-8,1],[-2,1,5]])
#迭代的初值
X0=np.array([[0],[0],[0]])
#松弛因子
w=1.2
#迭代的次數(shù)
max1=20
#進(jìn)行松弛迭代法求解線性方程組AX=b的解
X,err=sor(A,b,X0,w,max1)
#輸出由松弛迭代法求得的線性方程組AX=b的解
print("X={}\nerr={}".format(X,err))

? ? ? ? ?最后的輸出結(jié)果如下:

X=[[2.]
?[4.]
?[3.]]
err=2.3374567113095046e-09文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-442677.html

到了這里,關(guān)于松弛(SOR)迭代法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 34 | 牛頓迭代法

    牛頓迭代法(Newton’s Method)是一種用于尋找方程的實(shí)根的數(shù)值方法。其基本思想是通過(guò)一系列逼近來(lái)求解方程的根。對(duì)于方程 f ( x ) = 0 f(x) = 0

    2024年02月15日
    瀏覽(25)
  • 3.4 迭代法

    3.4 迭代法

    ? ? 雅可比迭代法是一種用于求解線性方程組的迭代算法,其基本思想是將線性方程組中的系數(shù)矩陣拆分為對(duì)角線矩陣和非對(duì)角線矩陣兩部分,并利用對(duì)角線矩陣的逆矩陣來(lái)迭代求解方程組。 具體地,設(shè)線性方程組為Ax=b,其中A為系數(shù)矩陣,b為常數(shù)向量,x為未知向量,雅可

    2024年02月08日
    瀏覽(23)
  • python算法二:迭代法

    1.定義:迭代法也稱輾轉(zhuǎn)法,是一種不斷用變量的舊值遞推新值的過(guò)程,跟迭代法相對(duì)應(yīng)的是直接法(或者稱為一次解法),即一次性解決問(wèn)題。迭代算法是用計(jì)算機(jī)解決問(wèn)題的一種基本方法,它利用計(jì)算機(jī)運(yùn)算速度快、適合做重復(fù)性操作的特點(diǎn),讓計(jì)算機(jī)對(duì)一組指令(或一定步

    2024年02月06日
    瀏覽(22)
  • 程序設(shè)計(jì)基礎(chǔ)實(shí)例大全(1.迭代法)

    本博文最先發(fā)表于知乎網(wǎng) 程序設(shè)計(jì)最為常用的計(jì)算方法有枚舉(Enumeration)、遞推和遞歸(Recursion)等。暴力搜索(Brute--force search)屬于枚舉法。 迭代法(Iteration)也是最為常用的一種方法。 1.1 階乘之和 問(wèn)題描述 計(jì)算S=1!+2!+…+n! 輸入 一個(gè)正整數(shù)n,滿足1≤n≤10。 輸出 階

    2024年02月07日
    瀏覽(25)
  • 牛頓迭代法求解方程根——C語(yǔ)言

    牛頓迭代法是一種求解非線性方程的數(shù)值計(jì)算方法,它的基本思路是通過(guò)不斷迭代逼近方程的根。下面我們將介紹如何使用C語(yǔ)言編寫(xiě)牛頓迭代法求解方程根的代碼,并利用博客對(duì)代碼進(jìn)行解釋。 牛頓迭代法的基本原理是利用函數(shù)f(x)在點(diǎn)x_0處的切線來(lái)逼近函數(shù)的零點(diǎn),將切線

    2024年02月08日
    瀏覽(23)
  • 【數(shù)學(xué)】通俗理解泰勒公式(牛頓迭代法有用到)

    【數(shù)學(xué)】通俗理解泰勒公式(牛頓迭代法有用到)

    最近在看一些機(jī)器學(xué)習(xí)優(yōu)化相關(guān)的方法(梯度下降、牛頓迭代等),里面又涉及到泰勒公式展開(kāi)等,大學(xué)學(xué)的奈何都忘的差不多了,于是就看了一些博客,整理一下。 泰勒公式,也稱泰勒展開(kāi)式。是用一個(gè)函數(shù)在某點(diǎn)的信息,描述其附近取值的公式。如果函數(shù)足夠平滑,在已

    2024年02月04日
    瀏覽(23)
  • Jacobi迭代法的matlab程序(《數(shù)值分析原理》)

    Jacobi迭代法的matlab程序(《數(shù)值分析原理》)

    Jacobi迭代法是常見(jiàn)的幾種迭代法之一,迭代格式如下圖所示:(圖片來(lái)自CHD的ztl老師的PPT)(具體內(nèi)容詳見(jiàn)《數(shù)值分析原理》) 該例子使用matlab的命令文件格式,命名為jacobi.m。 舉例:設(shè)有方程組 取初始向量為x (0)=(-3,1,1) (T),用Jacobi方法求解,要求||x (k+1)-x (k)||小于等于10…

    2023年04月08日
    瀏覽(16)
  • 數(shù)值分析——關(guān)于非線性方程求根的迭代法

    數(shù)值分析——關(guān)于非線性方程求根的迭代法

    目錄 一、Aitken算法: 二、Steffensen算法: 三、牛頓切線法 四、定端點(diǎn)弦截法 五、動(dòng)端點(diǎn)弦截法 六、不動(dòng)點(diǎn)迭代法 七、二分迭代法 Aitken算法是一種加速級(jí)數(shù)收斂的方法,適用于遞推計(jì)算和迭代解法,其核心思想是通過(guò)利用級(jí)數(shù)中的部分和之間的線性關(guān)系來(lái)加速收斂。 對(duì)應(yīng)的迭

    2024年02月03日
    瀏覽(23)
  • 牛頓迭代法Python代碼,全網(wǎng)最詳細(xì),教學(xué)向

    牛頓迭代法Python代碼,全網(wǎng)最詳細(xì),教學(xué)向

    ? ? ? ? ? ? ? ? 代碼功能包括函數(shù)圖像展示,初始值選取收斂區(qū)間判斷,迭代結(jié)果輸出,迭代過(guò)程圖像輸出。 ? ? ? ? 因講解過(guò)于冗長(zhǎng),先將完整代碼直接放在這里,只是想抄個(gè)模板方便修改的可以直接拿去用啦,有不了解的地方可以再翻下去看。 下面是純新手向詳細(xì)代

    2024年02月08日
    瀏覽(18)
  • matlab實(shí)現(xiàn)牛頓迭代法求解非線性方程

    非線性方程是指含有未知數(shù)的方程,且方程中至少有一個(gè)未知數(shù)的次數(shù)大于一或者含有非一次冪的函數(shù)(如指數(shù)、對(duì)數(shù)、三角函數(shù)等)。例如,$f(x) = x^3 - 2x - 5 = 0$就是一個(gè)非線性方程。非線性方程通常沒(méi)有顯式的解析解,因此需要使用數(shù)值方法來(lái)近似求解。 牛頓迭代法(N

    2024年02月11日
    瀏覽(36)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包