Serupa dengan metode-metode sebelumnya, selain Metode Newton-Raphson yang dibahas pada pembahasan sebelumnya, Metode Secant ini juga membutuhkan ‘tebakan’ 2 buah harga awal yang semuanya harus berada di sekitar DOMAIN JAWAB dari akar a (secara intuitif), sedemikian rupa sehingga formula tersebut konvergen (menuju ke titik jawab).
Hal lain yang harus diperhatikan adalah meskipun Metode Secant ini membutuhkan 2 buah nilai awal, namun ia dapat meringankan beban tambahan kepada penggunanya dalam hal perhitungan fungsi turunan f ' (xn), di setiap iterasi (titik xn). Hal ini merupakan salah satu keuntungan dari penggunaan metode ini dibandingkan Metode Newton-Raphson, mengingat tidak semua fungsi dapat diturunkan atau mempunyai turunan pada suatu interval yang kontinyu. Di samping itu juga, jaminan konvergensi dan bahkan laju konvergensinya masih jauh lebih baik dari Metode False Position seperti yang telah dibahas pada pembahasan sebelumnya.
Berikut algoritmanya dalam program matlab.
Misal fungsi inputnya : e^x-4x=0 dengan error 0.1 dan interval [0,1]
E=0.1;
x0=input ('Masukkan X0 : ');
x1=input ('Masukkan X1 : ');
f=inline('exp(x)-4*x');
i=1;
disp('______________________________');
disp(' i xi f(xi) ');
disp('______________________________');
while abs(f(x1))>=E
x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));
disp(sprintf('%3.0f %12.6f %12.6f %12.6f\n',i,x2,f(x2)));
x0=x1;
x1=x2;
i=i+1;
end
disp('______________________________');
disp(sprintf('Akarnya adalah = %10.8f\n', x2))
berikut hasil iterasinya:
Masukkan X0 : 0.5
Masukkan X1 : 1
____________________
i xi f(xi)
____________________
1 0.311230 0.120184
2 0.370277 -0.032973
____________________
Akarnya adalah = 0.37027744
x0=input ('Masukkan X0 : ');
x1=input ('Masukkan X1 : ');
f=inline('exp(x)-4*x');
i=1;
disp('______________________________');
disp(' i xi f(xi) ');
disp('______________________________');
while abs(f(x1))>=E
x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));
disp(sprintf('%3.0f %12.6f %12.6f %12.6f\n',i,x2,f(x2)));
x0=x1;
x1=x2;
i=i+1;
end
disp('______________________________');
disp(sprintf('Akarnya adalah = %10.8f\n', x2))
berikut hasil iterasinya:
Masukkan X0 : 0.5
Masukkan X1 : 1
____________________
i xi f(xi)
____________________
1 0.311230 0.120184
2 0.370277 -0.032973
____________________
Akarnya adalah = 0.37027744
kalo grafiknya kaya gimana ya? soalnya masih bingung sm false position agak mirip2, hehe.
ReplyDeleteThis comment has been removed by the author.
ReplyDeletegmna klo persamaanya x^3-x^2 -3x-3 = 0
ReplyDeleteganti persamaannya dibagian f=inline'nya mas
ReplyDeleteterima kasih. sangat membantu
ReplyDeleteMaaih error bang
ReplyDelete