محاسبات عددی علم و هنر محاسبه است. محاسبات عددی (یا آنالیز عددی) به مطالعه ی روش ها و الگوریتم هایی گفته می شود که تقریب های عددی (در مقابل جواب های تحلیلی) را برای مسائل ریاضی بکار می برند. محاسبات عددی با اعمال شیوه های تقریبی محاسباتی به حل مسائلی از ریاضیات پیوسته می پردازد که به روش تحلیلی قابل حل نبوده و یا به سختی قابل حل تحلیلی هستند.
سرفصل هایی که در این آموزش به آن پرداخته شده است:
درس اول: خطاها و اشتباهات
درس دوم: حل دستگاه های معادلات خطی
درس سوم: درون یابی و برازش
درس چهارم: مشتق گیری و انتگرال گیری عددی
درس پنجم: حل عددی معادلات دیفرانسیل معمولی
...
برای توضیحات بیشتر و تهیه این آموزش لطفا به لینک زیر مراجعه بفرمائید:
http://faradars.org/courses/fvmth102
14. دﺳﺘﻮراﻟﻌﻤﻞﺳﺎده ﺣﺬف روش اﻟﮕﻮرﻳﺘﻤﻲﮔﻮس
)Naive Gauss Elimination(
•اول ﻣﺮﺣﻠﻪ:اﮔﺮ
•ﻣﺮﺣﻠﻪدوم:ﺿﺮبدراﻳﻪﻫﺎياوﻟﻴﻦﺳﻄﺮازﻣﺎﺗﺮﻳﺲاﻓﺰودهدرواﻧﺠﺎمﻋﻤﻠﻴﺎتﺗﻔﺮﻳﻖروﺑﺮو:
•ﻣﺮﺣﻠﻪﺳﻮم:ﺑﺪﻳﻦﺗﺮﺗﻴﺐ،دراﻳﻦﻣﺮﺣﻠﻪ،ّﻟﻴﻦواﺳﻄﺮﻫﺎازﻣﺎﺗﺮﻳﺲﻫﺎيAوb،ﺑﺪونﺗﻐﻴﻴﺮﺑﺎﻗﻲﻣﻲ،ﻣﺎﻧﻨﺪودرآﻳﻪﻫﺎيّﻟﻴﻦوا
ﺳﺘﻮنازﻣﺎﺗﺮﻳﺲAدرزﻳﺮﺗﺒﺪﻳﻞﺑﻪﺻﻔﺮﻣﻲﮔﺮدﻧﺪ.ﺑﻨﺎﺑﺮاﻳﻦ،ﻧﺘﻴﺠﻪﺣﺎﺻﻞازاﻧﺠﺎمﻋﻤﻠﻴﺖﻓﻮق،دﺳﺘﮕﺎهﺗﻐﻴﻴﺮﻓﺮمﻳﺎﻓﺘﻪزﻳﺮ
اﺳﺖ:
(1)
11 0a
(1)
1
1 (1)
11
i
i
a
m
a
1im
(2) (1) (1)
1 1
(2) (1) (1)
1 1
, 2,3,...,ij ij i j
i i i
j na a m a
b b m b
(1)
11a
(1) (1) (1) (1)
111 12 1 1
(2) (2) (2)
222 2 2
(2) (2) (2)
2
. . .
0 . . .
.. . . . .
.. . . . .
.. . . . .
0 . . .
n
n
nn nn n
xa a a b
xa a b
xa a b
14
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
15. دﺳﺘﻮراﻟﻌﻤﻞ اداﻣﻪﺳﺎده ﺣﺬف روش اﻟﮕﻮرﻳﺘﻤﻲﮔﻮس
)Naive Gauss Elimination(
•ﻫﻤﻴﻦروشراﺑﺮايﺳﺎﻳﺮﺳﻄﺮﻫﺎﻧﻴﺰاداﻣﻪﻣﻲدﻫﻴﻢ،ﻛﻪﺑﺪﻳﻦﺗﺮﺗﻴﺐدرﺣﺎﻟﺖ
ﻛﻠﻲدرkاﻣﻴﻦﮔﺎمﺧﻮاﻫﻴﻢداﺷﺖ)اﻟﺒﺘﻪﺑﺎﻓﺮض( ( )
0k
kka
( )
( )
1
k
ik
ik k
k
a
m
a
kاﻓﺰوده ﻣﺎﺗﺮﻳﺲ از ﺳﻄﺮ اﻣﻴﻦ
( 1) ( ) ( )
( 1) ( ) ( )
, 2,3,...,k k k
ij ij ik kj
k k k
i i ik k
j na a m a
b b m b
(1) (1) (1) (1) (1)
111 12 1, 1, 1 1
(2) (2) (2) (2)
222 1, 1, 1 1
( ) ( ) ( )
, 1
( 1) ( 1)
11, 1 1,
( 1) ( 1)
, 1
0
0 0
0 0 0
0 0 0
k k n
k k n
k k k
kkk k k kn
k k
kk k k n
k k
nn k nn
xa a a a a
xa a a a
xa a a
xa a
xa a
(1)
1
(2)
2
( )
( 1)
1
( 1)
k
k
k
k
k
n
b
b
b
b
b
15
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
17. ﺑﺮﻧﺎﻣﻪMatlabروشﮔﻮس ﺳﺎده ﺣﺬف
function ngaussel(A,b)
n=length(b);
x=zeros(n,1);
fprintf('n');
disp(' The augmented matrix is')
augm =[A b]
for k=1:n-1
for i=k+1:n
m=A(i,k)/A(k,k);
for j=k+1:n
A(i,j)=A(i,j)-m*A(k,j);
end
A(i,k)=m;
b(i)=b(i)-m*b(k);
end
end
x(n)=b(n)/A(n,n);
for i=n-1:-1:1
S=b(i);
for j=i+1:n
S=S-A(i,j)*x(j);
end
x(i)=S/A(i,i);
end
% Print the results
fprintf('n');
disp(' The transformed upper triangular
augmented matrix C is =')
fprintf('n');
for i=1:n
for j=1:n
if (j<i) A(i,j)=0; end
end
end
C=[A b]
fprintf('n');
disp(' Back substitution gives the vector
solution')
x
17
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
26. ﺑﺮﻧﺎﻣﻪMatlabروشpivoting gauss elimination
function gaussel(A,b)
% Solve the system Ax=b using naive
Gaussian elimination
n=length(b);
x=zeros(n,1);
fprintf('n');
disp(' The augmented matrix is =')
augm =[A b]
for i=1:n
d(i)=i;
smax=0;
for j=1:n
smax=max(smax,abs(A(i,j)));
end
c(i)=smax;
end
for k=1:n-1
rmax=0;
for i=k:n
R=abs(A(d(i),k))/c(d(i));
if (R>rmax)
26
j=I;
rmax=R;
end
end
dk=d(j);
d(j)=d(k);
d(k)=dk;
for i=k+1:n
m=A(d(i),k)/A(dk,k);
for j=k+1:n
A(d(i),j)=A(d(i),j)-m*A(dk,j);
end
A(d(i),k)=m;
end
end
% Perform the back substitution.
for k=1:n-1
for i=k+1:n
b(d(i))=b(d(i))-b(d(k))*A(d(i),k);
end
end
x(n)=b(d(n))/A(d(n),n);
for i=n-1:-1:1
S=b(d(i));
for j=i+1:n
S=S-A(d(i),j)*x(j);
end
x(i)=S/A(d(i),i);
end
% Print the results
disp('The scale vector =‘)
c
disp('The index vector at the end of
the elimination process is =')
d
fprintf('n');
disp(' The transformed upper
triangular augmented matrix C is =')
fprintf('n');
for i=1:n
M(i,:)=A(d(i),:);
end
for i=1:n
for j=1:n
if (j<i) M(i,j)=0; end
end
end
C=[M b]
fprintf('n');
disp(' Back substitution gives the
vector solution')
x
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
28. ﻣﺜﻠﺜﻲ ﭘﺎﻳﻴﻦ و ﺑﺎﻻ ﻣﺎﺗﺮﻳﺲ ﻳﺎﻓﺘﻦ ﻫﺎي روش اﻧﻮاعLوU
28
1(روشﻫﺎيCholeskiوCroutو2(روشﺣﺬفﮔﻮس
*دراﻳﻨﺠﺎﺗﻨﻬﺎﺑﻪروشاولﭘﺮداﺧﺘﻪﻣﻲﺷﻮد.
*ﻣﺎﺗﺮﻳﺲLراﺑﺎﻋﻨﺎﺻﺮﻏﻴﺮﺻﻔﺮدرﻃﻮلﻗﻄﺮاﺻﻠﻲآنﺑﺪﺳﺖﻣﻲآورﻳﻢودرﺿﻤﻦﻣﺎﺗﺮﻳﺲUراﺑﻪﮔﻮﻧﻪايﺑﺪﺳﺖ
ﻣﻲآورﻳﻢﻛﻪﺗﺴﺎويﻣﺎﺗﺮﻳﺴﻲزﻳﺮﺑﺮﻗﺮارﺑﺎﺷﺪ)اﻟﺒﺘﻪﺑﺮايﻳﻚﻣﺎﺗﺮﻳﺲ4x4ﻧﻤﻮﻧﻪ(:
*ﺑﺮايﻣﺤﺎﺳﺒﻪﻣﺎﺗﺮﻳﺲﭘﺎﻳﻴﻦﻣﺜﻠﺜﻲL،ازروشﺣﺬفﮔﻮسﺳﺎدهاﺳﺘﻔﺎدهﻣﻲﻛﻨﻴﻢاﻟﺒﺘﻪدرراﺳﺘﺎيﺳﺘﻮنﻫﺎوﺑﺮاي
ﻣﺤﺎﺳﺒﻪﻋﻨﺎﺻﺮﻣﺎﺗﺮﻳﺲﺑﺎﻻﻣﺜﻠﺜﻲUازﻣﻌﺎدﻟﻪوﺗﺴﺎويﻓﻮقاﺳﺘﻔﺎدهﻣﻲﺷﻮد.
11 11 12 13 1412 13 14
21 22 21 22 23 2423 24
31 32 33 31 32 33 3434
41 42 43 44 41 42 43 44
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
l a a a au u u
l l a a a au u
l l l a a a au
l l l l a a a a
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
29. ﺑﺮﻳﺪ ﺑﻜﺎر زﻳﺮ دﺳﺘﮕﺎه ﺣﻞ ﺑﺮاي را ﻛﺮوت روش ﻣﺜﺎل:
ﻣﺴﺘﻘﻴﻢ ﻓﺎﻛﺘﻮرﮔﻴﺮي ﻳﻚ ، ﻣﺎﺗﺮﻳﺲ اﮔﺮLUآﻧﮕﺎه ،ﺑﺎﺷﺪ داﺷﺘﻪ:
ﺑﻮﺳﻴﻠﻪيﺿﺮبﻛﺮدنLدرU،وﻣﻘﺎﻳﺴﻪيدرآﻳﻪﻫﺎيﻣﺎﺗﺮﻳﺲﻫﺎيﺣﺎﺻﻞﺿﺮبﺑﺎدرآﻳﻪﻫﺎيﻣﺎﺗﺮﻳﺲA،ﺑﺪﺳﺖ
ﻣﻲآورﻳﻢ:
)i(ازﺿﺮباوﻟﻴﻦﺳﻄﺮازﻣﺎﺗﺮﻳﺲL،درﺳﺘﻮنﻫﺎيﻣﺎﺗﺮﻳﺲU،ﺑﺪﺳﺖﻣﻲآورﻳﻢﻛﻪ:
از ﻣﺜﺎﻟﻲﺗﺠﺰﻳﻪ روشLU
29
1
2
3
4
1 1 1 1 10
2 3 1 5 31
1 1 5 3 2
3 1 7 2 18
x
x
x
x
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
0 0 01 1 1 1 1
0 02 3 1 5 0 1
01 1 5 3 0 0 1
3 1 7 2 0 0 0 1
l u u u
l l u u
A
l l l u
l l l l
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
30. ﺗﺠﺰﻳﻪ روش از ﻣﺜﺎﻟﻲ اداﻣﻪLU
30
(i)ازﺿﺮباوﻟﻴﻦﺳﻄﺮازﻣﺎﺗﺮﻳﺲL،درﺳﺘﻮنﻫﺎيﻣﺎﺗﺮﻳﺲU،ﺑﺪﺳﺖﻣﻲآورﻳﻢﻛﻪ:
(ii)ازﺿﺮبدوﻣﻴﻦﺳﻄﺮازﻣﺎﺗﺮﻳﺲL،درﺳﺘﻮنﻫﺎيﻣﺎﺗﺮﻳﺲU،دارﻳﻢ:
(iii)ازﺿﺮبﺳﻮﻣﻴﻦﺳﻄﺮازﻣﺎﺗﺮﻳﺲL،درﺳﺘﻮنﻫﺎيﻣﺎﺗﺮﻳﺲU،دارﻳﻢ:
11
11 12 12
11 13 13
11 14 14
1,
1 1,
1 1,
1 1.
l
l u u
l u u
l u u
21
21 12 22 22 21 12
21 13 22 23 23 21 13 22
21 14 22 24 24 21 14 22
2,
3 3 1,
1 (1 ) / 1,
5 (5 )/ 3.
l
l u l l l u
l u l u u l u l
l u l u u l u l
31
31 12 32 32 31 12
31 13 32 23 33 33 31 13 32 23
31 14 32 24 33 34 34 31 14 32 24 33
1,
1 1 2,
5 5 2,
3 (3 )/ 1
l
l u l l l u
l u l u l l l u l u
l u l u l u u l u l u l
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
33. ﺑﺮﻧﺎﻣﻪMatlabﺗﺠﺰﻳﻪ روشLU
function lufact(A,b)
% Solve the system Ax=b using the LU
decomposition.
n=length(b);
y=zeros(n,1);
x=zeros(n,1);
fprintf('n');
for i=1:n
U(i,i)=1;
end
L(1,1)=A(1,1)/U(1,1);
for j=2:n
L(j,1)=A(j,1)/U(1,1);
U(1,j)=A(1,j)/L(1,1);
end
for i=2:n-1
S=0;
for k=1:i-1
S=S+U(k,i)*L(i,k);
end
L(i,i)=(A(i,i)-S)/U(i,i);
33
for j=i+1:n
S=0;
for k=1:i-1
S=S+U(k,i)*L(j,k);
end
L(j,i)=(A(j,i)-S)/U(i,i);
S=0;
for k=1:i-1
S=S+U(k,j)*L(i,k);
end
U(i,j)=(A(i,j)-S)/L(i,i);
end
end
S=0;
for k=1:n-1
S=S+U(k,n)*L(n,k);
end
L(n,n)=(A(n,n)-S)/U(n,n);
% Perform the forward substitution.
y(1)=b(1)/L(1,1);
for i=2:n
S=b(i);
for j=1:i-1
S=S-L(i,j)*y(j);
end
y(i)=S/L(i,i);
end
% Perform the back substitution.
x(n)=y(n)/U(n,n);
for i=n-1:-1:1
S=y(i);
for j=i+1:n
S=S-U(i,j)*x(j);
end
x(i)=S/U(i,i);
end
% Print the results
L
disp(' The forward substitution
gives')
y
U
disp('The vector solution is =')
X
سرداﺮﻓ
FaraDars.org
38. ژاﻛﻮﺑﻲ روش
)Jacobi Iterative Method(
•زﻳﺮ ﻓﺮم ﺑﻪ ﺧﻄﻲ ﻣﻌﺎدﻻت دﺳﺘﮕﺎه ﻓﺮم ﺗﻐﻴﻴﺮ ﺑﺎ ﻣﺘﻐﻴﺮﻫﺎ از ﻳﻚ ﻫﺮ ﻣﺤﺎﺳﺒﻪ
•زﻳﺮ ﻓﺮﻣﻮل ﺑﺎ ﺑﺮاي آوردن ﺑﺪﺳﺖ
•زﻳﺮ ﺷﺮاﻳﻂ ﺷﺪن ﺑﺮآورده ﺗﺎ ﻗﺒﻞ ﻣﺮاﺣﻞ ﺗﻜﺮار:
38
1
( ) , 1,2, ,
n
ij j i
i
j ii ii
j i
a x b
x i n
a a
( )k
ix1k
],...,[
|| )()(
1
)(
)(
)1()(
k
n
kk
k
kk
k xxxwhere
x
xx
e
ni
a
bxa
x
ii
i
n
ij
j
k
jij
k
i ,...,2,1,
1
)1(
)(
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
41. ﺧﻄﻲ ﻣﻌﺎدﻻت دﺳﺘﮕﺎه ﺣﻞ روش ﺑﺮاي دﻳﮕﺮ ﻣﺜﺎل
ژاﻛﻮﺑﻲ ﺗﻜﺮاري روش ﺑﻪ
•اول ﮔﺎم:ﺿﺮاﻳﺐ ﻣﺎﺗﺮﻳﺲ ﺑﺮاي ﻻزم ﺷﺮاﻳﻂ ﻛﺮدن ﭼﻚ)ﺑﻮدن ﻣﻌﻴﻦ ﻣﺜﺒﺖ و ﻏﺎﻟﺐ(
•دوم ﮔﺎم:ﺑﻪ از ﻣﻌﺎدﻟﻪ دادن ﻓﺮﻣﺖ ﺗﻐﻴﻴﺮ
•ﺳﻮم ﮔﺎم:ﻧﺘﺎﻳﺞ ﻣﺤﺎﺳﺒﻪ و اوﻟﻴﻪ ﺣﺪس ﻳﻚ از اﺳﺘﻔﺎده
•ﭼﻬﺎرم ﮔﺎم:ﻣﻄﻠﻮب دﻗﺖ ﺑﻪ رﺳﻴﺪن ﺗﺎ ژاﻛﻮﺑﻲ روش ﺑﻪ ﻣﺮﺑﻮط ﻣﺤﺎﺳﺒﺎت اﻧﺠﺎم
41
3
12
14
11
2
1
x
x
bAx
3x4x
12x-x
21
21
Ax b'
x b Bx
1 ( 1)
( )
( )
, 1,2, , (4 11)
n
j ij j i
j i
i
ii
k
k
a x b
x i n
a
],...,[
|| )()(
1
)(
)(
)1()(
k
n
kk
k
kk
k xxxwhere
x
xx
e
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
42. ﺑﺮﻧﺎﻣﻪMatlabژاﻛﻮﺑﻲ روش
function jacobi(A,b,x0,tol,itmax)
% Solve the system Ax=b using Jacobi iteration method.
n=length(b);
x=zeros(n,1);
fprintf('n');
disp(' The augmented matrix is =')
Augm=[A b]
Y=zeros(n,1);
Y=x0;
for k=1:itmax+1
for i=1:n
S=0;
for j=1:n
if (j~=i)
S=S+A(i,j)*x0(j);
end
end
if(A(i,i)==0)
break
end
x(i)=(-S+b(i))/A(i,i);
end
err=abs(norm(x-x0));
42
rerr=err/(norm(x)+eps);
x0=x;
Y=[Y x];
if(rerr<tol)
break
end
end
% Print the results
if(A(i,i)==0)
disp(' division by zero')
elseif (k==itmax+1)
disp(' No convergence')
else
fprintf('n');
disp(' The solution vectors are:')
fprintf('n');
disp('iter # 0 1 2 3 4 ...')
fprintf('n');
for i=1:n
fprintf('x%1.0f = ',i)
fprintf('%10.6f',Y(i,[1:k+1]))
fprintf('n');
end
fprintf('n');
disp(['The method converges after ',num2str(k),' iterations
to']);
x
end
سرداﺮﻓ
FaraDars.org
43. ﮔﻮس روش-ﺳﻴﺪال
)Gauss-Seidal Iterative Method(
•روش دﺳﺘﻮراﻟﻌﻤﻞﮔﻮس-ﺳﻴﺪالﻣﺘﻐ از ﻳﻚ ﻫﺮ ﻣﻘﺪار اﻳﻨﻜﻪ ﺟﺰ ﺑﻪ ﺑﺎﺷﺪ ﻣﻲ ژاﻛﻮﺑﻲ روش ﺑﻪ ﻣﺸﺎﺑﻪ ًﺎﺗﻘﺮﻳﺒ ﻧﻴﺰﺑﺎ ﻴﺮﻫﺎ
ﺷﻮد ﻣﻲ ﻣﺤﺎﺳﺒﻪ ، ﻣﺮﺣﻠﻪ ﻫﺮ در ﻣﺘﻐﻴﺮﻫﺎ ﺳﺎﻳﺮ ﺑﺮاي آﻣﺪه ﺑﺪﺳﺖ ﺗﻘﺎرﻳﺐ ﺟﺪﻳﺪﺗﺮﻳﻦ از اﺳﺘﻔﺎده.
•زﻳﺮ ﻓﺮم ﺑﻪ ﺧﻄﻲ ﻣﻌﺎدﻻت دﺳﺘﮕﺎه ﻓﺮم ﺗﻐﻴﻴﺮ ﺑﺎ ﻫﺎ ﻣﺘﻐﻴﺮ از ﻳﻚ ﻫﺮ ﻣﺤﺎﺳﺒﻪ
–زﻳﺮ ﺷﺮاﻳﻂ ﺷﺪن ﺑﺮآورده ﺗﺎ ﻗﺒﻞ ﻣﺮﺣﻠﻪ ﺗﻜﺮار:
43
],...,[
|| )()(
1
)(
)(
)1()(
k
n
kk
k
kk
k xxxwhere
x
xx
e
111
1k
1 ( ) ( 1)
1 1( )
( ) ( )
1,2, , .
i nk k
ij j ij j ij j ik
i
ii
a x a x b
x
a
i n
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
46. ﺑﺮﻧﺎﻣﻪMatlabﮔﻮس روش-ﺳﻴﺪال
46
function seidel(A,b,x0,tol,itmax)
% Solve the system Ax=b using Gauss-Seidel iteration method.
n=length(b);
x=zeros(n,1);
fprintf('n');
disp(' The augmented matrix is =')
Augm=[A b]
Y=zeros(n,1);
Y=x0;
for k=1:itmax+1
for i=1:n
S=0;
for j=1:i-1
S=S+A(i,j)*x(j);
end
for j=i+1:n
S=S+A(i,j)*x0(j);
end
if(A(i,i)==0)
break
end
x(i)=(-S+b(i))/A(i,i);
end
err=abs(norm(x-x0));
rerr=err/(norm(x)+eps);
x0=x;
Y=[Y x];
if(rerr<tol)
break
end
end
% Print the results
if(A(i,i)==0)
disp(' division by zero')
elseif (k==itmax+1)
disp(' No convergence')
else
fprintf('n');
disp(' The solution vectors are:')
fprintf('n');
disp('iter # 0 1 2 3 4 ...')
fprintf('n');
for i=1:n
fprintf('x%1.0f = ',i)
fprintf('%10.6f',Y(i,[1:k+1]))
fprintf('n');
end
fprintf('n');
disp(['The method converges after ',num2str(k),' iterations
to']);
x
end
سرداﺮﻓ
FaraDars.org
47. >> A = [7 -2 +1 0;1 -9 3 -1;2 0 10 1;2 -1 1 6];
>> b = [17;13;15;10] ;
>> x1 = lufact(A,b);
>> x0 = zeros(size(b));
>> ITMAX = 5;
>> tol = 1e-5;
>> X = zeros(length(b),ITMAX,2);
>> for ii = 1 : ITMAX
X(:,ii,1)=jacobi(A,b,x0,tol,ii);
X(:,ii,2)=seidel(A,b,x0,tol,ii);
end
>> figure;
>> for ii=1:length(b)
subplot (length(b),1,ii);plot(1:ITMAX+1,x1(ii)*ones(1,ITMAX+1),'*-',1:ITMAX+1,[0,X(ii,:,1)],'s-
',1:ITMAX+1,[0,X(ii,:,2)],'d-','linewidth',2.5,'markersize',7);
xlabel(' No. of Iterations ');ylabel(' X values ');title([' Comparison of Convergence Speed and Accuracy between
Jacobi & Gauss-seidel Iterative Methods for Variable No. ', num2str(ii)]);
legend('Real Value for Var. x','Jacobi Values for Var. x ','Seidel Values for Var. x');
end
47
ﮔﻮس و ژاﻛﻮﺑﻲ روﺷﻬﺎي ﻫﻤﮕﺮاﻳﻲ ﺳﺮﻋﺖ ﻣﻴﺎن ﻣﻘﺎﻳﺴﻪ-ﺳﻴﺪال
ﻋﺪدي ﻣﺤﺎﺳﺒﺎت
ﻛﻤﻚ ﺑﻪMATLAB
faradars.org/fvmth102
سرداﺮﻓ
FaraDars.org
48. 48
ﮔﻮس و ژاﻛﻮﺑﻲ روﺷﻬﺎي ﻫﻤﮕﺮاﻳﻲ ﺳﺮﻋﺖ ﻣﻴﺎن ﻣﻘﺎﻳﺴﻪ اداﻣﻪ-ﺳﻴﺪال
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
0
2
4
No. of Iterations
Xvalues
Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 1
Real Value for Var. x
Jacobi Values for Var. x
Seidel Values for Var. x
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
-2
-1
0
No. of Iterations
Xvalues
Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 2
Real Value for Var. x
Jacobi Values for Var. x
Seidel Values for Var. x
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
0
1
2
No. of Iterations
Xvalues
Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 3
Real Value for Var. x
Jacobi Values for Var. x
Seidel Values for Var. x
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
0
0.5
1
No. of Iterations
Xvalues
Comparison of Convergence Speed and Accuracy between Jacobi & Gauss-seidel Iterative Methods for Variable No. 4
Real Value for Var. x
Jacobi Values for Var. x
Seidel Values for Var. x
سرداﺮﻓ
FaraDars.org