Anda di halaman 1dari 21

PRAKTIKUM METODE NUMERIK-2

Aproksimasi Akar Sistem Persamaan Taklinear

Disusun guna memenuhi tugas mata kuliah yang diampu oleh

Nursyiva Irsalinda, S.Si., M.Sc.

Disusun oleh:

Eliza Damayanti Lumban Gaol 1600015007

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI TERAPAN

UNIVERSITAS AHMAD DAHLAN

YOGYAKARTA

2019
Masalah Responsi 7.6.1 Coba mainkan nilai awal untuk memperoleh keempat akar sistem
persamaan taklinear ini. Apakah nilai awal yang lebih dekat dengan akar eksak akan konvergen
ke akar tersebut ? Apakah semakin jauh nilai awal dari eksak maka semakin lama
kekonvergenannya ?

>> jf=jacob_app([1 1]',0.1)

jf =

1.9591 -1.0000
-1.0000 1.9591

>> [akar,langkah]=newton_sistem(p0,1e-4)

akar =

1.0000 0.6050

langkah =

>> [akar,langkah]=newton_sistem0(p0,1e-4)

akar =

Columns 1 through 4
1.0000 0.4500 -0.1904 -0.1661
1.0000 0.1500 -0.1238 0.2770

Columns 5 through 8

-0.3634 -0.4253 -0.4631 -0.4815


0.3431 0.4271 0.4631 0.4815

Columns 9 through 12

-0.4908 -0.4954 -0.4977 -0.4988


0.4908 0.4954 0.4977 0.4988

Columns 13 through 16

-0.4994 -0.4997 -0.4999 -0.4999


0.4994 0.4997 0.4999 0.4999

langkah =

15

>> [akar,langkah]=newton_sistem1(p0,1e-4,0.1)
>> In newton_sistem1 (line 21)

akar =
1.0000 6.5370 -680.3656
1.0000 4.8472 -590.6185

langkah =

Kesimpulan : di bandingkan dengan ketiga system newton_system memiliki nilai yang


mendekati eksak dan yang system 0 memiliki langkah yang paling panjang menuju eksak.

Masalah Responsi 7.6.2 Coba mainkan periode pada metode chord modifikasi dengan
mengambil m = 1,2. Apakah kekonvergenannya lebih cepat ? Khusus m = 1, apakah hasilnya
sama dengan metode Newton ? Mengapa ?

 Metode Chord modifikasi


Untuk 𝑚 = 1
Diperoleh
>> [akar,langkah]=chord_modif([1 1]',1e-12,1)

akar =

1.0000 0.9718 0.9718 0.9718 0.9718


1.0000 0.9856 0.9856 0.9856 0.9856

langkah =

4
Untuk 𝑚 = 2
Diperoleh
>> [akar,langkah]=chord_modif([1 1]',1e-12,2)

akar =

1.0000 0.9718 0.9718 0.9718 0.9718


1.0000 0.9856 0.9856 0.9856 0.9856

langkah =

4
 Metode Newton
Diperoleh
>> [akar,langkah]=newton_sistem([1 1]',1e-12)

akar =

1.0000 0.9718 0.9718 0.9718


1.0000 0.9856 0.9856 0.9856

langkah =

3
Masalah Responsi 7.6.3 Untuk sistem persamaan yang sama, modifikasilah m-file sebelumnya
dimanan matriks awal B0 diambil sebagai matriks identitas. Kemudian jalankan program Anda
untuk toleransi yang sama. Apakah ia konvergen dan bagaimana kecepatan konvergensinnya
dibandingkan dengan ketika B0 adalah Jacobian eksak.

>> [akar,langkah]=broyden([1 1 1]',1e-4)

akar =

1.0000 0.9540 0.5106 0.5056 0.5074 0.5008


0.5003 0.5000 0.5000 0.5000

1.0000 0.4608 0.3172 0.2417 0.1624 0.0655


0.0267 0.0054 0.0007 0.0000

1.0000 -0.6257 -0.6122 -0.5315 -0.5258 -0.5248


-0.5243 -0.5237 -0.5236 -0.5236

langkah =

Masalah Responsi 7.6.4 Diberikan sistem persamaan taklinear sebagai berikut :

sin(𝑥1 ) + 𝑥22 + ln(𝑥3 ) = 3,

3𝑥1 + 2𝑥2 − 𝑥33 = 0,

𝑥12 + 𝑥22 + 𝑥33 = 6.


 Newton_sistem
>> [akar,langkah]=newton_sistem([1 1 1]',1e-12)

akar =

Columns 1 through 12

1.0000 0.7488 0.4892 0.3069 0.2564 0.2445


0.2426 0.2423 0.2423 0.2423 0.2423 0.2423
1.0000 1.0951 1.4427 1.4990 1.5223 1.5264
1.5271 1.5272 1.5272 1.5272 1.5272 1.5272
1.0000 2.1041 1.6939 1.5585 1.5358 1.5341
1.5339 1.5339 1.5339 1.5339 1.5339 1.5339

Columns 13 through 18

0.2423 0.2423 0.2423 0.2423 0.2423 0.2423

1.5272 1.5272 1.5272 1.5272 1.5272 1.5272


1.5339 1.5339 1.5339 1.5339 1.5339 1.5339

langkah =

17

 Newton_sistem0
>> [akar,langkah]=newton_sistem0([1 1 1]',1e-12)

akar =

Columns 1 through 12

1.0000 0.7488 0.4892 0.3069 0.2564 0.2445


0.2426 0.2423 0.2423 0.2423 0.2423 0.2423
1.0000 1.0951 1.4427 1.4990 1.5223 1.5264
1.5271 1.5272 1.5272 1.5272 1.5272 1.5272
1.0000 2.1041 1.6939 1.5585 1.5358 1.5341
1.5339 1.5339 1.5339 1.5339 1.5339 1.5339

Columns 13 through 18
0.2423 0.2423 0.2423 0.2423 0.2423 0.2423
1.5272 1.5272 1.5272 1.5272 1.5272 1.5272
1.5339 1.5339 1.5339 1.5339 1.5339 1.5339

langkah =

17

 Jacobian

>> x = [ 1 1 1 ]'

x =

>> jf=jacob_app(x,0.1)

jf =

0.5394 2.0000 1.0034

3.0000 1.3874 -3.0100

2.0000 2.0000 2.0000


 Newton Sistem 1

>> [akar,langkah]=newton_sistem1([1 1 1]',1e-12,0.1)

akar =

Columns 1 through 12

1.0000 1.2537 -2.1069 -0.8687 -0.9204 -1.0811


-1.1283 -1.1417 -1.1448 -1.1454 -1.1456 -1.1456

1.0000 0.7704 2.0664 2.0660 1.9370 1.9922


2.0112 2.0168 2.0180 2.0182 2.0183 2.0183

1.0000 2.4759 1.4836 1.2289 1.0517 0.9223


0.8682 0.8538 0.8508 0.8502 0.8501 0.8501

Columns 13 through 22

-1.1456 -1.1456 -1.1456 -1.1456 -1.1456 -1.1456


-1.1456 -1.1456 -1.1456 -1.1456

2.0183 2.0183 2.0183 2.0183 2.0183 2.0183


2.0183 2.0183 2.0183 2.0183

0.8500 0.8500 0.8500 0.8500 0.8500 0.8500


0.8500 0.8500 0.8500 0.8500

langkah =

21

 Chord_standar
[akar,langkah]=chord_standard([2 2 2]',1e-4)

akar =

Columns 1 through 12
2.0000 0.8581 0.6646 0.5545 0.4805 0.4268
0.3867 0.3561 0.3324 0.3140 0.2996 0.2881

2.0000 1.2562 1.2705 1.3278 1.3787 1.4162


1.4429 1.4622 1.4765 1.4873 1.4956 1.5021

2.0000 1.7953 1.6799 1.6311 1.6047 1.5881


1.5765 1.5678 1.5610 1.5557 1.5514 1.5480

Columns 13 through 24

0.2791 0.2719 0.2661 0.2615 0.2578 0.2548


0.2524 0.2504 0.2489 0.2476 0.2466 0.2458

1.5071 1.5111 1.5143 1.5168 1.5188 1.5205


1.5218 1.5228 1.5236 1.5243 1.5249 1.5253

1.5453 1.5431 1.5413 1.5399 1.5387 1.5378


1.5371 1.5365 1.5360 1.5356 1.5353 1.5350

Columns 25 through 34

0.2451 0.2446 0.2441 0.2438 0.2435 0.2432


0.2431 0.2429 0.2428 0.2427
1.5257 1.5260 1.5262 1.5264 1.5265 1.5267
1.5268 1.5268 1.5269 1.5270
1.5348 1.5346 1.5345 1.5344 1.5343 1.5342
1.5341 1.5341 1.5341 1.5340

langkah =

33

 Chord Modif
>> [akar,langkah]=chord_modif([1.2 1.2 1.2]',1e-4,2)

akar =
Columns 1 through 12

1.2000 0.6481 0.4152 0.3694 0.2650 0.2535


0.2442 0.2433 0.2424 0.2424 0.2423 0.2423
1.2000 1.2628 1.5409 1.4002 1.5340 1.5171
1.5284 1.5261 1.5273 1.5271 1.5272 1.5272
1.2000 1.7940 1.3549 1.6821 1.4674 1.5543
1.5274 1.5363 1.5332 1.5342 1.5338 1.5339

Columns 13 through 15

0.2423 0.2423 0.2423


1.5272 1.5272 1.5272
1.5339 1.5339 1.5339

langkah =

14

 Broyden

>> [akar,langkah]=broyden([1 1 1]',1e-12)

akar =

1.0000 0.7488 0.4264 0.3046 0.2814 0.2586


0.2514 0.2427 0.2423 0.2423 0.2423 0.2423

1.0000 1.0951 1.6729 1.4652 1.5396 1.5183


1.5222 1.5270 1.5272 1.5272 1.5272 1.5272

1.0000 2.1041 1.2703 1.4586 1.5268 1.5433


1.5367 1.5342 1.5339 1.5339 1.5339 1.5339

langkah =

11
 Steepest_descent
>> [akar,langkah]=steepest_descent([1 1 1]',1e-1)

akar =

Columns 1 through 12

1.0000 0.8749 0.8483 0.7442 0.7364 0.7219


0.7145 0.7030 0.6971 0.6870 0.6819 0.6727
1.0000 1.1290 1.1410 1.1281 1.2007 1.2043
1.2061 1.2122 1.2152 1.2223 1.2257 1.2331
1.0000 1.5157 1.6372 1.6293 1.6189 1.6285
1.6174 1.6254 1.6155 1.6228 1.6136 1.6205

Columns 13 through 24

0.6680 0.6592 0.6549 0.6465 0.6423 0.6343


0.6303 0.6226 0.6187 0.6114 0.6076 0.6007
1.2365 1.2440 1.2473 1.2545 1.2577 1.2646
1.2676 1.2742 1.2770 1.2832 1.2860 1.2917
1.6117 1.6182 1.6098 1.6159 1.6079 1.6137
1.6060 1.6116 1.6042 1.6095 1.6023 1.6075

Columns 25 through 31

0.5969 0.5905 0.5868 0.5805 0.5769 0.5710


0.5675

1.2944 1.2997 1.3024 1.3074 1.3100 1.3148


1.3172
1.6006 1.6055 1.5990 1.6037 1.5974 1.6019
1.5958

langkah =

30
7.8 Soal-Soal Latihan BAB 7

1. Susunlah formula iterasi Newton untuk menyelesaikan sistem persamaan taklinear


berikut:
a. 𝑥12 + 𝑥22 = 1 dan 𝑥12 − 𝑥2 = 0

function [akar,langkah]=newton_sistem(p0,tol)
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
akar=[p0];langkah=0;
while norm(fp)>tol
langkah=langkah+1;
q0=jf\fp;
p= p0 - q0;
akar=[akar p];
p0=p;
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
end
%fungsi diketahui
function y=fun(x)
y=zeros(2,1);
y(1)=x(1)^2+x(2)^2-1;
y(2)=x(1)^2-x(2);
%derivatifnya
function dy=dfun(x)
dy=zeros(2,2);
dy(1,1)=2*x(1);
dy(1,2)=2*x(2);
dy(2,1)=2*x(1);
dy(2,2)=-1;

b. 2 sin 𝑥1 + cos 𝑥2 − 5𝑥1 = 0 dan 4 cos 𝑥1 + 2 sin 𝑥2 − 5𝑥2

function [akar,langkah]=newton_sistem(p0,tol)
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
akar=[p0];langkah=0;
while norm(fp)>tol
langkah=langkah+1;
q0=jf\fp;
p= p0 - q0;
akar=[akar p];
p0=p;
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
end
%fungsi diketahui
function y=fun(x)
y=zeros(2,1);
y(1)=2*sin(x(1))+cos(x(2))-5*x(1);
y(2)=4*cos(x(1))+2*sin(x(2))-5*x(2);
%derivatifnya
function dy=dfun(x)
dy=zeros(2,2);
dy(1,1)=2*cos(x(1))-5;
dy(1,2)=-cos(x(2));
dy(2,1)=-4*sin(x(1));
dy(2,2)=2*cos(x(2))-5;

2. Perhatikan sistem persamaan taklinear


𝑥1 − 1 = 0
𝑥1 𝑥2 − 1 = 0
Untuk nilai awal apa saja, metode Newton untuk menyelesaikan masalah ini akan gagal?
Jawab:
function [akar,langkah]=newton_sistem(p0,tol)
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
akar=[p0];langkah=0;
while norm(fp)>tol
langkah=langkah+1;
q0=jf\fp;
p= p0 - q0;
akar=[akar p];
p0=p;
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
end
%fungsi diketahui
function y=fun(x)
y=zeros(2,1);
y(1)=x(1)-1;
y(2)=x(1)*x(2)-1;
%derivatifnya
function dy=dfun(x)
dy=zeros(2,2);
dy(1,1)=1;
dy(1,2)=0;
dy(2,1)=x(2);
dy(2,2)=x(1);

Output :

>> [akar,langkah]=newton_sistem([0 0]',1e-4)

Error using newton_sistem (line 5)

metode Newton gagal!

>> [akar,langkah]=newton_sistem([0 1]',1e-4)

Error using newton_sistem (line 5)

metode Newton gagal!

>> [akar,langkah]=newton_sistem([0 2]',1e-4)

Error using newton_sistem (line 5)

metode Newton gagal!

>> [akar,langkah]=newton_sistem([0 3]',1e-4)

Error using newton_sistem (line 5)

metode Newton gagal!


>> [akar,langkah]=newton_sistem([0 4]',1e-4)

Error using newton_sistem (line 5)

metode Newton gagal!

6. Diberikan sistem persamaan linear sebagai berikut

𝑥13 + 𝑥12 𝑥2 − 𝑥1 𝑥3 + 6 = 0

𝑒 𝑥1 + 𝑒 𝑥2 − 𝑥3 = 0

𝑥22 − 2𝑥1 𝑥3 = 4

Gunakan nilai awal 𝑥 (0) = (−1, −2,1)𝑇 , kemudian lakukan iterasi untuk menemukan
aproksimasi 𝑥𝑛 dengan ||𝑥 𝑛 − 𝑥 𝑛−1 || < 10−6 . Gunakan metode Newton, chord
modifikasi dengan periode 3, metode Broyden, dan metode penurunan tercuram. Metode
mana yang memberikan kecepatan paling tinggi ?

 Metode newton

>> p0=[-1 -2 1]';

>> [akar,langkah]=newton_sistem(p0,1e-6)

akar =

1.0e+07 *

Columns 1 through 12
-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000
-0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000

-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000


-0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000

0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000


0.0000 0.0000 -0.0000 0.0000 -0.0002 -0.0002

Columns 13 through 14

0.0000 NaN

0.0841 NaN

5.9578 NaN

langkah =

13

>> [akar,langkah]=newton_sistem0([-1 -2 1]',1e-6)

akar =

1.0e+07 *
Columns 1 through 12

-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000


-0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000

-0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000


-0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000

0.0000 -0.0000 -0.0000 0.0000 -0.0000 -0.0000


0.0000 0.0000 -0.0000 0.0000 -0.0002 -0.0002

Column 13

0.0000

0.0841

5.9578

langkah =

12

12. Sebuah satelit yang mengorbit bumi memiliki jarak terhadap bumi R mengikuti formula

1
𝑅=
𝐶 + 𝑒 sin(𝜃 + 𝛼)
Dimana (𝑅, 𝜃) adalah koordinat polar dari lintasan satelit tersebut terhadap pusat bumi.
Konstanta 𝐶, 𝑒, dan 𝛼 perlu diketahui. Dalam hal ini konstanta 𝑒 disebut eksentrisitas
orbit. Jika diperoleh 3 data hasil observasi berikut, tentuksn nilsi konstanta 𝐶, 𝑒, dan 𝛼

𝜃 −300 00 300
𝑅(km) 6870 6728 6615

Kemudian gambarkan bentuk orbit satelit ini dan tentukan jarak terdekat dan terjauhnya
terhadap bumi.

function [akar,langkah]=newton_sistem12(p0,tol)
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode Newton gagal!')
end
akar=[p0];
langkah=0;
while norm(fp)>tol
langkah=langkah+1;
q0=jf\fp;
p=p0-q0;
akar=[akar p];
p0=p;
fp=feval('fun',p0);
jf=feval('dfun',p0);
if det(jf)==0
error('metode newton gagal!')
end
end
%fungsi yang diketahui
function y=fun(x)
y=zeros(3,1);
y(1)=6870*(1+x(2)*sin(-30+x(3)))-x(1);
y(2)=6728*(1+x(2)*sin(0+x(3)))-x(1);
y(3)=6615*(1+x(2)*sin(30+x(3)))-x(1);
%jacobiannya
function dy=dfun(x)
dy=zeros(3,3);
dy(1,1)=-1;
dy(1,2)=6870*sin(-30+x(3));
dy(1,3)=x(2)*cos(x(3));
dy(2,1)=-1;
dy(2,2)=6728*sin(0+x(3));
dy(2,3)=x(2)*cos(x(3));
dy(3,1)=-1;
dy(3,1)=6615*sin(30+x(3));
dy(3,3)=x(2)*cos(x(3));

Output :

>> [akar,langkah]=newton_sistem12([1 1 0]',1e4)

akar =

1.0e+06 *

Columns 1 through 12

0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000


-0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000

0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000


0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000

0 -0.0067 1.1365 1.3718 0.8813 0.7065


1.1239 1.7761 1.3742 0.0912 0.3783 -0.4092

Columns 13 through 17

0.0000 0.0000 0.0000 0.0000 0.0000


0.0000 -0.0000 -0.0000 -0.0000 -0.0000

0.0472 -0.1101 -0.0760 0.4152 0.3482

langkah =

16

Anda mungkin juga menyukai