Disusun oleh:
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 =
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
Columns 9 through 12
Columns 13 through 16
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 =
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 ?
akar =
langkah =
4
Untuk 𝑚 = 2
Diperoleh
>> [akar,langkah]=chord_modif([1 1]',1e-12,2)
akar =
langkah =
4
Metode Newton
Diperoleh
>> [akar,langkah]=newton_sistem([1 1]',1e-12)
akar =
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 =
akar =
Columns 1 through 12
Columns 13 through 18
langkah =
17
Newton_sistem0
>> [akar,langkah]=newton_sistem0([1 1 1]',1e-12)
akar =
Columns 1 through 12
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 =
akar =
Columns 1 through 12
Columns 13 through 22
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
Columns 13 through 24
Columns 25 through 34
langkah =
33
Chord Modif
>> [akar,langkah]=chord_modif([1.2 1.2 1.2]',1e-4,2)
akar =
Columns 1 through 12
Columns 13 through 15
langkah =
14
Broyden
akar =
langkah =
11
Steepest_descent
>> [akar,langkah]=steepest_descent([1 1 1]',1e-1)
akar =
Columns 1 through 12
Columns 13 through 24
Columns 25 through 31
langkah =
30
7.8 Soal-Soal Latihan BAB 7
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;
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;
Output :
𝑥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
>> [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
Columns 13 through 14
0.0000 NaN
0.0841 NaN
5.9578 NaN
langkah =
13
akar =
1.0e+07 *
Columns 1 through 12
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 =
1.0e+06 *
Columns 1 through 12
Columns 13 through 17
langkah =
16