ปฏิบัติการคอมพิวเตอร์ เรื่อง ...
DESCRIPTION
ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลายตัวแปร. อ . ดร . ชโล ธร ธรรมแท้ สาขาวิชาวิศวกรรมเครื่องกล มหาวิทยาลัยเทคโนโลยี สุร นารี. Linear Systems: GAUSS Elimination. ปัญหา n สมการ - n ตัวแปร. หรือเขียนในรูป [A]{x} ={b}. GAUSS Elimination. กำจัดไปข้างหน้า - PowerPoint PPT PresentationTRANSCRIPT
ปฏิ�บั�ติ�การคอมพิ�วเติอร� เร��อง ระบับัสมการหลายติ�วแปร
อ.ดร. ชโลธร ธรรมแท้� สาขาวิ�ชาวิ�ศวิกรรมเคร��องกล มหาวิ�ท้ยาล�ย
เท้คโนโลย�ส�รนาร�
Linear Systems: GAUSS Elimination
ปั�ญหา n สมการ - n ตั�วิแปัร
หร�อเขี�ยนในร�ป [A]{x}={b}
GAUSS Elimination
• ก�าจั�ดไปขี#างหน#า• แปลง Matrix ให#เป$นMatrix สามเหล��ยมบัน
• จัะเหล�อสมการส%ดท้#ายเป$น1 สมการ 1 ติ�วแปร•จัะได#ค�าติอบัขีองติ�วแปรส%ดท้#าย•จัากน�'นแท้นค(ากล�บัขี)'นมาท้�ละสมการ
Forward Eliminationแถวล(าง = แถวล(าง - ( สปส ล(าง / สปส
บัน )แถวบัน 14
222 rowrowrow
14
133 rowrowrow
23
5.133 rowrowrow
Back Substitution
หร�อ
จัาก Forward Elimination ได# Matrix สามเหล��ยมบัน
แท้นค(ากล�บั
MATLAB: GaussElim.m % ขี�'นติอน Forward Elimination %factor = A(i,j)/A(j,j); % factor = สปส ล(าง / สปส บัน A(i,j:n) = A(i,j:n) - factor*A(j,j:n); %แถวล(าง-factor*แถวบัน b(i)= b(i) - factor*b(j); %แถวล(าง-factor*แถวบัน
% ขี�'นติอน Back Substitution% for k = n-1:-1:1 % loop Back sub x(k) = (b(k) - A(k,k+1:n)*x(k+1:n))/A(k,k) end
Download ได� จากhttp://eng.sut.ac.th/me/subject.html
ป+ญหาขีองว�ธี� GAUSS Elimination
สมการในร�ปติ(อไปน�' จัะไม(สามารถท้�า Gauss Elimination ได#
• เน��องจัาก a11 เป$น 0 ท้�าให#ขี� 'นติอนการก�าจั�ด row2 เก�ด การหารด#วย 0
• แก#ป+ญหาโดยสล�บั Row3 ก�บั Row1 แล#วจั)งเร��มค�านวณ• ระหว(างการค�านวณอาจัเก�ด สปส ขีอง column ซ้#าย
เป$นศู�นย� ให#ขี#ามการท้�างานในแถวน�'นไป ใน MATLAB ค�อบัรรท้�ด: if A(i,j)~=0• เร�ยกว(าการท้�า Pivoting
ป+ญหาขีองว�ธี� GAUSS Elimination The exact solution is
ท้�า Forward Elimination
66669999
0001.2000.30003.0
2
21
x
xx
หากป+ดเศูษ x2 จัะได#ค�าติอบั x1 ติ(างก�นอย(างมากด�งน�'
สมการช�ดเด�ยวิก�น หากสล�บแถวิ
9998.19997.2
0000.10000.10000.1
2
21
x
xx
ท้�า Forward Elimination
หากป+ดเศูษ x2 จัะได#ค�าติอบั x1 ติ(างก�นเล3กน#อย : Partial Pivoting
แบับัฝึ5กห�ดจงหาค&าตัอบของระบบสมการ
1.
2.
Linear Systems: LU factorization]][[][ ULA
3233233213313222321231311131
231321221221211121
131312121111
auululaululaul
aulaulaul
auauau
เม��อ [A] เป$นค(าท้��ท้ราบั แก#สมการท้�'ง 9 ท้�ละสมการ จัะ ได# [L] และ [U]
LU factorization
}{}]{][[
}{}]{[
bxUL
bxA
ให# [U]{x}={y} ท้�าให#[L]{y}={b}
3
2
1
3
2
1
3231
21
1
01
001
b
b
b
y
y
y
ll
l หาค�าติอบัขีอง {y} ได#ง(าย
จัาก matrix สามเหล��ยมล(าง
3
2
1
3
2
1
33
2322
131211
00
0
y
y
y
x
x
x
u
uu
uuu
แก# [L]{y}={b}
ให# [U]{x}={y} หาค�าติอบัขีอง {x} ได#ง(าย จัาก matrix สามเหล��ยม
บัน
MATLAB function: lu()[L,U]=lu(A)
สมการ
MATLAB function: \
• ค�าส��ง \ ใน MATLAB ใช้#ในการหาค�าติอบัขีอง สมการ [A]{x}={b}
• ติ#องการหาค�าติอบั [L]{y}={b} พิ�มพิ�>> y=L\b
• ติ#องการหาค�าติอบั [U]{x}={y} พิ�มพิ�>> x=U\y
ค&าถาม: A\b ไห�ผลล�พธ*เปั+น อะไร
MATLAB function: inv()
• inv() ใช้#ในการหา inverse matrix เช้(น inv(A)
• ด�งน�'นหาค�าติอบัขีองสมการ [A]{x}={b} ได#จัากค�าส��ง>> x=inv(A)*b
][][][ 1 IAA
}{][}]{[
}{][}]{[][1
11
bAxI
bAxAA
จัากค%ณสมบั�ติ�ค�ณเขี#าท้างซ้#าย
ท้�าให#ได# {x}
Linear Systems: : Jacobi Iterationสมการ จ�ดร,ปั
เดาค-าเร��มตั�น x1,x2,x3 เช-น = 0 แล�วิแท้นค-ากล�บลงไปัในสมการท้��จ�ดร,ปัแล�วิ
140.710/)]0(2.0)0(3.04.71[
7571.27/)]0(3.0)0(1.03.19[
6167.23/)]0(2.0)0(1.085.7[
3
2
1
x
x
x
Iteration 1:
Linear Systems: : Jacobi Iteration
1138.710/)]7571.2(2.0)6717.2(3.04.71[
6824.27/)]14.7(3.0)6167.2(1.03.19[
8783.23/)]14.7(2.0)757.2(1.085.7[
3
2
1
x
x
xIteration 2:
แท้นค-า x1,x2,x3 จาก iteration 1 ในสมการท้��จ�ดร,ปัแล�วิ
Iteration 3 : X1=2.904500, X2=-2.674905, X3=7.111217 Iteration 4 : X1=2.907117, X2=-2.674157, X3=7.110955
ท้&าซ้ำ&0า แท้นค-า x1,x2,x3 จาก iteration 2 และท้&าไปัเร��อยๆ
%1003,2,1
3,2,13,2,1
new
oldnew
x
xxES
Jacobi.m
X1old=0; X2old=0; X3old=0; % ก�าหนดค(าเร��มติ#นfor i=1:10 X1new = (7.85 + 0.1*X2old + 0.2*X3old) /3 ; % สมการ 1 X2new = (-19.3 - 0.1*X1old + 0.3*X3old) /7; % สมการ 2 X3new = (71.4 - 0.3*X1old + 0.2*X2old) /10; % สมการ 3 X1old=X1new; X2old=X1new; X3old=X1new; %เก3บัค(าเก(า
fprintf ('iter=%d X1=%f X2=%f X3=%f \n', i,X1new,X2new,X3new);
end Download ได� จากhttp://eng.sut.ac.th/me/subject.html
แบับัฝึ5กห�ด• จังหาผลเฉลยขีองสมการ โดยใช้#ว�ธี� Jacobi
Iteration
• เปัร�ยบเท้�ยบผลท้��ได�ก�บวิ�ธ�อ��นๆ
Nonlinear Systems สมการไม-เช�งเส�นด�งในบท้ root of equations สามารถม�
หลายสมการ หลายตั�วิแปัร
ค&าตัอบของสมการค�อจ�ดตั�ดก�นของเส�นกราฟท้�0ง 2
Nonlinear Systems: Jacobi Iteration สามารถปัระย�กตั*ใช� Jacobi Iteration ในการหาค&าตัอบ
ของ Nonlinear systems
Case1
Case2
แบับัฝึ5กห�ด• จังหาผลเฉลยขีองสมการ โดยใช้#ว�ธี� Jacobi
Iteration
• เปัร�ยบเท้�ยบระหวิ-างการจ�ดร,ปัสมการ Case1 ก�บCase2 ให�ผลล�พธ*ตั-างก�นอย-างไร
• ก�าหนดค(าเร��มติ#น X1=2, X2=3 ท้�าซ้�'า 5 คร�'ง