方程组求解matlab实现(朴素高斯求解、LU分解、雅可比迭代方法、高斯-塞德尔方法、连续过松弛(SOR))
朴素高斯求解
function x= oridinarygauss(a,b)
n=length(b);
for j=1:n-1for i=j+1:nmult=a(i,j)/a(j,j);for k=j+1:na(i,k)=a(i,k)-mult*a(j,k);endb(i)=b(i)-mult*b(j);end
end
x(n)=b(n)/a(n,n);
for i=n-1:-1:1for j=i+1:nb(i)=b(i)-a(i,j)*x(j);endx(i)=b(i)/a(i,i);
end
end
说明:输入参数a为系数矩阵,b为Ax=b的b值。
LU分解
function [L,U,x] = lureslove(a,b)
n=size(a);n=n(1);
L=eye(n);U=a;
for j=1:n-1for i=j+1:nmult=U(i,j)/U(j,j);L(i,j)=mult;for k=1:nU(i,k)=U(i,k)-mult*U(j,k);endend
end
c(1)=b(1);
for i=2:nfor j=1:i-1b(i)=b(i)-L(i,j)*c(j);endc(i)=b(i);
end
x(n)=c(n)/U(n,n);
for i=n-1:-1:1for j=i+1:nc(i)=c(i)-U(i,j)*x(j);endx(i)=c(i)/U(i,i);
end
end
说明:输入参数a为系数矩阵,b为Ax=b的b值。
雅可比迭代
function [x,i] = yakebi(a,b,e,tol)
n=length(b);
D=diag(a);
D=spdiags(D,0,n,n);
r=a-D;i=0;
x=zeros(n,1);
while (norm((x-e),inf)>tol) x=D\(b-r*x);i=i+1;
end
end
说明:输入参数a为系数矩阵,b为Ax=b的b值。e为初始估计解常取e=zeros(n,1);tol为求解控制精度(用无穷范数表示的前向误差)。
高斯-塞德尔方法
function x = gaussseidel(a,b,k)
n=length(b);
D=diag(a);
D=spdiags(D,0,n,n);
e=inv(D);
L=tril(a,-1);U=triu(a,1);
x=zeros(n,1);
for i=1:kfor j=1:nx(j)=e(j,j)*(b(j)-U(j,:)*x-L(j,:)*x);end
end
说明:输入参数a为系数矩阵,b为Ax=b的b值。k为迭代次数。
连续过松弛(SOR)
function x = sor(a,b,w,k)
n=length(b);
D=diag(a);
D=spdiags(D,0,n,n);
e=inv(D);
L=tril(a,-1);U=triu(a,1);
x=zeros(n,1);
for i=1:kfor j=1:nx(j)=(1-w)*x(j)+w*e(j,j)*(b(j)-U(j,:)*x-L(j,:)*x);end
end
说明:输入参数a为系数矩阵,b为Ax=b的b值。k为迭代次数。w为松弛参数。
方程组求解matlab实现(朴素高斯求解、LU分解、雅可比迭代方法、高斯-塞德尔方法、连续过松弛(SOR))相关推荐
- 基于高斯塞德尔方法的超松弛迭代法MATLAB实现
概述 用MATLAB编程实现,形成m函数文件.输入A,b矩阵,与松弛因子 ω \omega ω,无返回值.设置精度要求 ε = 1 0 − 4 \varepsilon=10^{-4} ε=10−4.所 ...
- MATLAB实现雅可比与高斯塞德尔迭代
概述 用MATLAB编程实现,形成m函数文件.输入A,b矩阵,无返回值,解得x向量直接显示在命令行窗口,同时绘制出x向量的收敛曲线. A = [ 2 − 1 1 1 1 1 1 1 − 2 ] b = ...
- 雅可比(Jacobi)及高斯-塞德尔(Gauss_Seidel)迭代法求解线性方程组的matlab现实
雅可比迭代法的实现代码: function X=Jacobi(A,B,P,delta,max1) %Input -A is a X*N nosingular matrix % -B is a N*1 ...
- 计算方法:列主元消去法,LU分解法, 雅可比迭代法,高斯塞德尔迭代法 解线性方程(C++)
Matrix.h包括矩阵类Matrix的定义,Matrix.cpp包括该类成员函数的实现,LinearEqu.h包括线性方程类LinearEqu的定义,继承自Matrix类,其中solve()方法为列 ...
- [计算机数值分析]高斯-塞德尔迭代公式解线性方程组
在雅可比迭代公式的基础上,对于收敛的迭代过程,所求出的"新值"常比"老值"更准确些,因此可以用它替代老值作进一步的计算,这样的思想就是著名的高斯-塞德尔迭代公式 ...
- 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组(转载)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yyywww666/article/details/42805071 算法介绍(迭代法介绍): 代码C ...
- 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组
算法介绍(迭代法介绍): 代码C语言实现; # include<stdio.h> # include<math.h> # define N 6 /* *使用雅可比迭代法和高斯- ...
- matlab ilu函数,不完全 LU 分解
ilu 不完全 LU 分解 语法 ilu(A,setup) [L,U] = ilu(A,setup) [L,U,P] = ilu(A,setup) 说明 ilu 生成一个单位下三角矩阵.一个上三角矩阵 ...
- Matlab与线性代数--矩阵的LU分解
本图文详细介绍了Matlab中有关矩阵LU分解的操作.
最新文章
- 转换字符串中汉字为其拼音缩写(C#)
- es6 generator_让我们探索一下ES6 Generators
- 卷积神经网络要点解析
- WPF:使用Json.NET在TreeView中树形显示JSON数据
- 用python写一个手机app签到脚本_利用Python实现App自动签到领取积分
- Nginx设置禁止通过IP访问服务器
- 12bit的图像如何向8bit转化_干货分享 | 如何鉴别Western Blot图像的真实性?
- Linux学习笔记001---Windows下安装CentOS7_并且安装桌面UI
- 中国水上健身器材市场趋势报告、技术动态创新及市场预测
- apache storm 1.0.0 新特性
- Java线程与Android线程,Android线程篇(三):深入理解Java线程池(一)
- Windows环境上装在VM,VM安装CentOS7
- Dmp文件导入(Imp命令)
- jz2440裸机开发与分析:S3c2440ARM异常与中断体系详解8---定时器中断程序示例
- (转)yolov3运行及保存检测视频(包括摄像头)
- 路飞学城Python-Day13
- ​LeetCode刷题实战603:连续空余座位
- Error launching application on iPhone 11 Pro Max.
- 报错:tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to float is not supported
- 计算机键盘清洗怎么弄,笔记本电脑键盘怎么清洗干净(专业户教你清洗键盘简易方法)...
热门文章
- mongodb 持久化 mysql_scrapy数据持久化存储(MySQL、MongoDB)
- 接口测试工具Postman(转)
- node.js实现formdata上传文件
- MaxCompute JDBC 2.2 发布说明
- Windows Phone 7 中的切换应用
- 计算机文化基础教程教案,新版《计算机文化基础》教案.doc
- 数据结构(C语言实现)勘误
- SPP pooling layer
- Linux基于expect(tcl)实现shell自动交互
- centos下实现程序开机自启动(tomcat为例)