numerical method1 iterative approaches for solving linear systems successive over-relaxation ...
TRANSCRIPT
![Page 1: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/1.jpg)
Numerical methodNumerical method 11
Iterative approaches for solving linear Iterative approaches for solving linear systemssystems
Successive over-relaxationSuccessive over-relaxationPost-nonlinear systemPost-nonlinear systemPartial pivotingPartial pivoting
Lecture 11-IILecture 11-II
![Page 2: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/2.jpg)
Numerical methodNumerical method 22
Derivation ofDerivation of Successive Successive over-relaxationover-relaxation
![Page 3: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/3.jpg)
Numerical methodNumerical method 33
Successive over-relaxationSuccessive over-relaxation methodmethod
D=diag(diag(A));U=triu(A)-D;L=A-triu(A);R=D+w*L;T=inv(R)*((1-w)*D-w*U);c=w*inv(R)*b;
wbxwUDwwLDx ))1(()( 1
wbxwUDwxwLD ))1(()(
![Page 4: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/4.jpg)
Numerical methodNumerical method 44
Successive over-relaxationSuccessive over-relaxation methodmethod
A,b it_xor.mx
A=[10 -1 2 0;-1 11 -1 3; 2 -1 10 -1;0 3 -1 8];b=[6 25 -11 15]';inv(A)*b
![Page 5: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/5.jpg)
Numerical methodNumerical method 55
>> it_xor(A,b) It takes 17 iterations to converge
ans =
1.00000000300255 2.00000000357295 -1.00000000163021 0.99999999724547
![Page 6: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/6.jpg)
Numerical methodNumerical method 66
VariantVariant successive over-successive over-relaxationrelaxation
bxUwDxLDwD )()(
![Page 7: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/7.jpg)
Numerical methodNumerical method 77
Variant Successive over-Variant Successive over-relaxationrelaxation
D=diag(diag(A));U=triu(A)-D;L=A-triu(A);R=w*D+D+L;T=inv(R)*(w*D-U);c=inv(R)*b;
bxUwDxLDwD )()(
bLDwDc
UwDLDwD1
1
)(
)()(T
![Page 8: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/8.jpg)
Numerical methodNumerical method 88
Variant Successive over-Variant Successive over-relaxationrelaxation method method
A,b it_vxor.mx
A=[10 -1 2 0;-1 11 -1 3; 2 -1 10 -1;0 3 -1 8];b=[6 25 -11 15]';inv(A)*b
![Page 9: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/9.jpg)
Numerical methodNumerical method 99
>> it_vxor(A,b,w) It takes 17 iterations to converge
ans =
1.00000000300255 2.00000000357295 -1.00000000163021 0.99999999724547
![Page 10: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/10.jpg)
Numerical methodNumerical method 1010
w=0w=0
>> it_vxor(A,b,0) It takes 10 iterations to converge
ans =
0.99999999998681 1.99999999985957 -0.99999999997639 1.00000000005561
![Page 11: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/11.jpg)
Numerical methodNumerical method 1111
Large wLarge w
>> it_vxor(A,b,3) It takes 90 iterations to converge
ans =
0.99999998371358 1.99999997234472 -0.99999998858309 1.00000003116601
![Page 12: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/12.jpg)
Numerical methodNumerical method 1212
Post-Nonlinear SystemPost-Nonlinear System
Ax=b, Ax=b, A=rand(100,100),b=rand(100,1)A=rand(100,100),b=rand(100,1)
f(Ax)=b, where f is an arbitrary one-f(Ax)=b, where f is an arbitrary one-dimensional nonlinear functiondimensional nonlinear function
Given A,b Given A,b
find f and xfind f and x
![Page 13: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/13.jpg)
Numerical methodNumerical method 1313
f(Ax)=bf(Ax)=b
Multiple solutionsMultiple solutionsx
fmean absolute error: 0.017080mean square error: 0.000755
mean(abs(b-f(Ax)))
![Page 14: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/14.jpg)
Numerical methodNumerical method 1414
f(Ax)=bf(Ax)=b
Multiple solutionsMultiple solutionsx f
mean absolute error: 0.024637mean square error: 0.002738
![Page 15: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/15.jpg)
Numerical methodNumerical method 1515
Matrix inversionMatrix inversion
Solve Gx=fSolve Gx=f ExampleExample
Gf.zip
>> load Gf.mat;>> inv(G);Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 4.206041e-017.
![Page 16: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/16.jpg)
Numerical methodNumerical method 1616
rankrank
ss=cputime;for i=1:1000rank(G);endss2=cputime;fprintf('cputime: rank %f \n',ss2-ss);cputime: rank 1.703125
![Page 17: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/17.jpg)
Numerical methodNumerical method 1717
rankrank
ss=cputime;for i=1:50000rank(G);endss2=cputime;fprintf('cputime: rank %f \n',ss2-ss);cputime: rank 82.546875
![Page 18: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/18.jpg)
Numerical methodNumerical method 1818
pinvpinv
ss=cputime;for i=1:1000pinv(G);endss2=cputime;fprintf('cputime: pinv %f \n',ss2-ss);
cputime: pinv 7.062500
![Page 19: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/19.jpg)
Numerical methodNumerical method 1919
Inverse of submatrixInverse of submatrix
ss=cputime;for i=1:50000inv(G(1:61,1:61));endss2=cputime;fprintf('cputime: pinv %f \n',ss2-ss);cputime: inv of submatrix 28.937500
Time reduced from 50*7.06 to 28.93 sec
![Page 20: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/20.jpg)
Numerical methodNumerical method 2020
Partial pivoting Partial pivoting
Maximal column pivotingMaximal column pivoting
78.46130.629.5 :
17.5917.5916.^10:
212
211
xxE
xxE
The pivot or pivot element is the element of a matrix, which is selected first by an algorithm (e.g. Gaussian elimination, Quicksort, Simplex algorithm), to do certain calculations with the matrix
![Page 21: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/21.jpg)
Numerical methodNumerical method 2121
A=[10.^-16 59.17;5.29 -6.13];b=[59.17 46.78]';B=[A b];
fGauss.m
backward.m
B
0.0 1.0000
ans =
10.0019 1.0000
B=fGauss(B)
x=backward(B)
![Page 22: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/22.jpg)
Numerical methodNumerical method 2222
B =
10.^-16 59.1400 59.1700 5.2900 -6.1300 46.7800
FindExchange row 1 and row 2
2900.5},max{ 2111 bb
temp=B(1,:);B(1,:)=B(2,:);B(2,:)=temp;
![Page 23: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/23.jpg)
Numerical methodNumerical method 2323
U=fGauss(B);x=backward(U)
x =
10.0019 1.0000
B =
5.2900 -6.1300 46.7800 10.^-16 59.1400 59.1700
![Page 24: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/24.jpg)
Numerical methodNumerical method 2424
78.4613.6291.5
59170059140030
21
21
xx
xx
A=[30.00 591400;5.29 -6.13];b=[591700 46.78]';B=[A b];
![Page 25: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/25.jpg)
Numerical methodNumerical method 2525
Scaled partial pivotingScaled partial pivoting
kjj
k as max
k
ki
ik s
a
maxargp where
pivotith theas pselect
Exchange row i and row p
![Page 26: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/26.jpg)
Numerical methodNumerical method 2626
A =
2.1100 -4.2100 0.9210 4.0100 10.2000 -1.1200 1.0900 0.9870 0.8320
Determine the first pivot by[v p]=max(A(:,1)./s);
>> s=max(abs(A'))'
s =
4.2100 10.2000 1.0900
p =
3
![Page 27: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/27.jpg)
Numerical methodNumerical method 2727
Scaled partial pivotingScaled partial pivoting
Function [B,pr]=pss(A,b)Function [B,pr]=pss(A,b)n=length(b);B=[A b]; pr=[]; n=length(b);B=[A b]; pr=[]; s=max(abs(A'))' Pr=1:n;Pr=1:n;for i= 1:nfor i= 1:n
A.A. Find the ith pivot row and set it to pFind the ith pivot row and set it to pB.B. Exchange pr(i) and pr(p)Exchange pr(i) and pr(p)C.C. Exchange row i and row p of matrix BExchange row i and row p of matrix BD.D. For each row j > iFor each row j > i
1)1) Set d to the ratio B(j,i) / B(i,i)Set d to the ratio B(j,i) / B(i,i)2)2) Set B(j,:) to B(j,:)-d*B(i,:)Set B(j,:) to B(j,:)-d*B(i,:)
Return B and prReturn B and pr
![Page 28: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/28.jpg)
Numerical methodNumerical method 2828
ExampleExampleA=[2.11 -4.21 .921;4.01 10.2 -1.12;1.09 .987 .832];b=[2.01 -3.09 4.21]';
spp.m[B,pr]=spp(A,b)
B =
1.0900 0.9870 0.8320 4.2100 0 -6.1206 -0.6896 -6.1396 0 0.0000 -4.9209 -25.1675
pr =
3 1 2
![Page 29: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/29.jpg)
Numerical methodNumerical method 2929
ExampleExampleA=[1.19 2.11 -100 1;14.2 -0.122 12.2 -1;0 100 -99.9 1; 15.3 0.110 -13.1 -1];b=[1.12 3.44 2.15 4.16]';
[B,pr]=spp(A,b);x=backward(B);
x =
0.1768 0.0127 -0.0207 -1.1826
![Page 30: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/30.jpg)
Numerical methodNumerical method 3030
ExerciseExercise
Implement the scaled partial pivoting Implement the scaled partial pivoting method to improve the forward method to improve the forward Gauss elimination method.Gauss elimination method.
Verify your matlab codes by two Verify your matlab codes by two examplesexamples
![Page 31: Numerical method1 Iterative approaches for solving linear systems Successive over-relaxation Post-nonlinear system Partial pivoting Lecture 11-II](https://reader036.vdocuments.site/reader036/viewer/2022062421/56649d215503460f949f5ff2/html5/thumbnails/31.jpg)
Numerical methodNumerical method 3131
Avoid row swappingAvoid row swapping
Row swapping results in time Row swapping results in time consumingconsuming
No row swappingNo row swapping Use a vector v to emulate row swappingUse a vector v to emulate row swapping Swap elements in v instead of swapping Swap elements in v instead of swapping
rows in Brows in B How to revise spp.m to avoid row How to revise spp.m to avoid row
swapping ? swapping ?