![](https://img.51dongshi.com/20250105/wz/18477946952.jpg)
在MATLAB中實現雅可比迭代法和高斯-塞德爾迭代法,可以編寫相應的函數。下面是一個實現高斯-塞德爾迭代法的MATLAB函數示例:function x=Gauss_Seidel(A,b,x0,tol)該函數接受四個參數:系數矩陣A、常數向量b、初始猜測向量x0以及容差tol。函數內部首先判斷參數數量,如果參數數量為2,則使用單位向量作為初始猜測向量,并設定容差為1e-6;如果參數數量為3,則僅使用設定的容差1e-6;如果參數數量為4,則直接使用用戶提供的參數。函數首先提取系數矩陣A的對角線元素生成對角矩陣D,然后使用triu和tril函數分別提取上三角矩陣U和下三角矩陣L。接下來,計算高斯-塞德爾迭代公式中的G和d1。初始化迭代次數n為1,然后進入迭代循環。在循環內部,計算新的迭代向量x,更新x0為x,迭代次數n加1。循環條件為當前迭代向量x與上一次迭代向量x0之間的范數差大于設定的容差。下面是一段具體的MATLAB代碼示例:A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8];b=[6;25;-11;15];x=Gauss_Seidel(A,b)運行上述代碼,可以得到結果:x = 1.0000 2.0000 -1.0000 1.0000經過8次迭代后,得到的解向量為x。高斯-塞德爾迭代法是一種常用的線性方程組求解方法,它通過逐步迭代逼近方程組的解。通過上述MATLAB函數實現,可以方便地在MATLAB環境中進行線性方程組的求解。