Professional Documents
Culture Documents
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++(
(+
, -./" ,. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0
0+
1 "%% , ,
,. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0
0+(+
# 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0
0+0+
'#
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++2
0+ +
%$
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3
+
" / . '.%, ,. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2+
-,4 , 5 -%
/ . /, ,. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3+
, - ,5
./ *.- ,
- %6%
%7 1 "%%8% ,/ +++++++++++++++++++++++++++++9
+
. :.-!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)
" #
&
'
;<
=
;
#
>
8 #
>>x=A\b
>>x=inv(A)*b
;<
;
; =
;
#
$
; # $
+: @
#
;
@ ;
" #
&
'
;
8
8
8
# 1
;
+
?
?
+
function x = GaussNaive(A,b)
% GaussNaive(A,b):
" #
&
'
% input:
%
A = coefficient matrix
% output:
%
x = solution vector
[m,n] = size(A);
if m ~= n, error(Matrix A must be square); end
nb = n+l;
Aug = [A b];
% forward elimination
for k = 1:n-1
for i = k+1:n
factor = Aug(i,k)/Aug(k,k);
Aug(i,k:nb) = Aug(i,k:nb)-factor*Aug(k,k:nb);
end
end
% back substitution
x = zeros(n,1);
x(n) = Aug(n,nb)/Aug(n,n);
for i = n-1:-1:1
x(i) = (Aug(i,nb)-Aug(i,i+l:n)*x(i+l:n))/Aug(i,i);
end
A < @
;
+
#
#
#
#
;
+
<
+
1
function x = GaussPivot(A,b)
% GaussPivot(A,b):
%
% input:
%
A = coefficient matrix
% output:
%
x = solution vector
[m,n] = size(A);
if m ~= n, error(Matrix A must be square); end
" #
&
'
nb = n+l;
Aug = [A b];
% forward elimination
for k = 1:n-1
% partial pivoting
[big, i] = max(abs(Aug(k:n,k)));
ipr = i+k-l;
if ipr ~= k
% pivot
the
rows
"#
$
(
(
(
8
#
#
< @
>
1
+
<
function x = Tridiag(e,f,g,r)
% Tridiag(e,f,g,r):
" #
&
'
% input:
%
e = subdiagonal vector
f = diagonal vector
g = superdiagonal vector
% output:
%
x = solution vector
n = length(f);
% forward elimination
for k = 2:n
factor = e(k)/f(k-1);
f(k) = f(k) - factor*g(k-1);
r(k) = r(k) - factor*r(k-1);
end
% back substitution
x(n) = r(n)/f(n);
for k = n-1:-1:1
x(k) = (r(k)-g(k)*x(k+1))/f(k)
end
:
$
"
+
>>[L,U]=lu(A)
>>L*U
>>d=L\b
>>x=U\d
;
$
=$
+,
? 7
"
"@B"C4
+
;
>>norm(X,p)
>>cond(X,p)
4
E
@F+
; D(< 0<
<
> #
>>norm(X,p)*norm(inv(X),p)
" #
&
'
71
function x = GaussSeidel(A,b,es,maxit)
% GaussSeidel(A,b):
%
% input:
%
A = coefficient matrix
(default = 0.00001)
% output:
%
x = solution vector
% default values
if nargin<4, maxit=50; end
if nargin<3, es=0.00001; end
[m,n] = size(A);
" #
&
'
; 3@
" #
=+
00 . + 0 2
&
'