matlab实现高斯消去法、LU分解
2015-07-09 23:17
621 查看
朴素高斯消去法:
LU分解:
\[ A = LU\]
input parameter:
n : the dimension of matrix A
A : the matrix A
output parameter
L : the matrix L
U : the matrix U
firstly, set the matrix L be all zero. When simplifying the matrix A to matrix U, set the lower triangular matrix elements.
The single line with only A, L and U is to print the matrix( in matlab ).
function x = GauElim(n, A, b) if nargin < 2 for i = 1 : 1 : n for j = 1 : 1 : n A(i, j) = 1 / (i + j - 1); end b(i, 1) = 1; end end for j = 1 : n - 1 if abs(A(j, j)) < eps; error('zero pivot encountered'); end for i = j + 1 : n mult = A(i, j) / A(j, j); for k = j + 1 : n A(i, k) = A(i, k) - mult * A(j, k); end A(i, j) = 0; b(i, 1) = b(i, 1) - mult * b(j); end end for i = n : -1 : 1 for j = i + 1 : n b(i, 1) = b(i, 1) - A(i, j) * x(j, 1); end x(i, 1) = b(i, 1) / A(i, i); end end
LU分解:
\[ A = LU\]
function [ L, U ] = LUfactory( n, A ) A L = zeros(n); for j = 1 : n if abs(A(j, j)) < eps; error('zero pivot encountered'); end L(j, j) = 1; for i = j + 1 : n L(i, j) = A(i, j) / A(j, j); mult = A(i, j) / A(j, j); for k = j + 1 : n A(i, k) = A(i, k) - mult * A(j, k); end A(i, j) = 0; end end U = A; L U end
input parameter:
n : the dimension of matrix A
A : the matrix A
output parameter
L : the matrix L
U : the matrix U
firstly, set the matrix L be all zero. When simplifying the matrix A to matrix U, set the lower triangular matrix elements.
The single line with only A, L and U is to print the matrix( in matlab ).
相关文章推荐
- matlab实现不动点迭代、牛顿法、割线法
- matlab实现的嵌套乘法、高精度、二分法
- [图像]图像灰度均衡化和灰度直方图(Matlab实现)
- [图像]获取图片中感兴趣区域的信息(Matlab实现)
- matlab GUI常用文件操作对话框
- 关于matlab信号发展趋势的识别并读取fig文件代码
- matlab norm 范式
- Matlab norm 用法小记
- [图像]用Matlab在图像上画矩形框
- 时间序列分析的matlab自相关函数autocorr
- 关于matlab读取txt文件与连接离散点的函数
- VS和matlab混合编程的推荐书籍!
- matlab里cell和char,字符串与字符数组
- MATLAB函数大全
- Visual Studio中调用matlab生成的dll
- matlab的cell数组
- 数字信号处理公式变程序(五)——仿matlab的spectrogram函数(STFT)
- Matlab应用实例(8)—fminimax
- 读取siftgeo格式文件的matlab程序
- matlab中元胞数组(cell)转换为矩阵