Ch10. 数值算法实现§1. 线性方程组解法 1、三角形线性方程组解法以上三角形线性方程组为例。回代: ??????????????????? ii nij j ij ii nn nnaxabx abx 1,1,2,,2,1????nni Ax b ? % 文件 function u = uptri ( a, b ) n= size(a,1) ; x(n)= b(n) / a(n, n) ; for i = n-1:-1:1 s=0 ; for j = i+1: n s=s+a(i, j) * x( j ) ; end x(i) = ( b(i) – s) / a(i, i) ; end u = x ; 求解 Ax b ????? nij j ijxas 12、顺序 Gauss 消去法(1)消去过程: 第 k 步,计算(2)回代过程: ( ) ( ) ( 1) ( ) ( ) ( 1) ( ) ( ) , 1, , , 1, , ; 1, , , 1, , k k ik ik kk k k k ij ij ik kj k k k i i ik k a a i k n a a a i k n j k n b b b i k n ???? ???? ? ??????? ? ???? ?? ??? ?)1,,2,1(??nk????????????????????)(1 )()( )()(, i ii nij j i ij iii nnn nnnaxabx abx1,2,,2,1????nni%文件 function u = gauss (a, b) n = length (b) ; for k=1: n –1 for i = k+1 : n mult = a ( i, k) / a (k, k) ; for j =k +1: n % if abs ( a( k, k) ) > 1e–6 a (i, j) = a (i, j) – mult * a(k, j) ; % else % disp ( ‘顺序 Gauss 消去法失败’); % pause ; % exit ; % end end 可去掉%, 判断主元是否为 0 b (i) = b (i) – mult * b (k) ; end end x(n)= b(n) / a(n, n) ; for i = n-1:-1:1 s=0 ; for j = i+1: n s=s+a(i, j) * x( j ) ; end x(i) = ( b(i) – s) / a(i, i) ; end u = x ; 回代例: % 主文件 a=[6, -2, 2, 4; 12, -8, 6, 10; 3,-13, 9, 3; -6, 4, 1, -18 ]; b=[16, 26, -19, -34]; x= gauss (a, b); disp ( ‘方程组解为:’ ); x则有: >> main 方程组解为:x= 3 1 -2 1 3、 Jacobi 迭代法 b Ax? A D L U ? ??????????????????????????????????????????????????????????? 0 0 00 0 0 0 223 113 12 21 32 31 21 22 11???????????? n n nn nnaa aaaaa aa aa a a,)( 1)( 1)1(bDxULD x k k ?????? 0,1, 2, k??% function y = jacobi ( a, b, x0) D = diag ( diag (a) ) ; U = - triu (a, 1) ;
Matlab数值算法实现 来自淘豆网m.daumloan.com转载请标明出处.