Tag Archives: fortran

Metode Newton-Raphson

Referensi : http://en.wikipedia.org/wiki/Newton_Raphson

Referensi di atas cukup lengkap dalam menerangkan apa itu metode Newton-Raphson. Singkatnya, metode Newton Rapshon adalah metode yang digunakan untuk mencari solusi sebuh persamaan menggunakan metode numerik.

\displaystyle x_{n+1} = x_n - \dfrac{f(x_n)}{f'(x_n)}.\,\!

dengan f(x) adalah fungsi yang ingin kita cari solusinya, f'(x) adalah turunan dari fungsi f(x), dan n adalah bilangan asli mulai dari 1. Rumus di atas cukup menggambarkan secara sederhana apa itu metode Newton-Raphson.

Contoh sederhana, kita ingin mencari solusi persamaan: x^2 + x = cos(x)

Fungsi di atas kita ubah menjadi fungsi: f(x) = x^2 + x - cos(x)

Maka turunan dari fungsi di atas adalah f'(x) = 2x + 1 + sin(x)


x_1 = x_0 - \dfrac{f(x_0)}{f'(x_0)}
x_2  = x_1 - \dfrac{f(x_1)}{f'(x_1)}
x_3  = x_2 - \dfrac{f(x_2)}{f'(x_2)} \vdots
x_4  =  \vdots
x_5  =  \vdots

untuk n = 0, maka \displaystyle  x_1 = x_0 - \frac{(x_0^2 + x_0 - cos(x_0)}{2x_0 + 1 + sin(x_0))} dengan nilai awal x_0 = 10 dan akan menghasilkan nilai x_1.

untuk n = 1, maka \displaystyle x_2 = x_1 - \frac{(x_1^2 + x_1 - cos(x_1)}{2x_1 + 1 + sin(x_1)})

Demikian seterusnya cara di atas kita ulangi hingga mendapatkan nilai x_n yang konstan. Biasanya dengan 5 kali perulangan, sudah bisa mendapatkan nilai x_n yang konstan. Nilai akhir x_n ini adalah solusi dari persamaan f(x) kita tadi.

Contoh program dalam c:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* 
 * program untuk mencari solusi persamaan 
 * dari fungsi x^2 + x = cos(x)
 * 
 * f(x)  = x^2 + x - cos(x)
 * f(x)' = 2x + 1 + sin(x)
*/
 
#include <stdio.h>
#include <math.h>
#define PHI 3.141592654
 
int main()
{
    int i, loop;
    float init, x;
 
    printf("Masukkan bilangan inisiasi : ");
    scanf("%f", &init);
    x = init;
    printf("Masukkan banyak pengulangan : ");
    scanf("%d", &loop);
 
    for(i = 0; i < loop ; i++){
        x = x - ((x*x + x - cos(x * PHI / 180)) / (2*x + 1 + sin(x * PHI / 180)));
        printf("%f\n", x);
    }
 
    printf("Solusi persamaan x^2 + x = cos(x) adalah x = %f", x);
 
}

Contoh program dalam fortran:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
! program untuk mencari solusi persamaan 
! dari fungsi x^2 + x = cos(x)
 
! f(x)  = x^2 + x - cos(x)
! f(x)' = 2x + 1 + sin(x)
 
 
program newtonRaphson
    integer::i, loop
    real::init, x
    real, parameter::PHI = 3.141592654
 
    write(*, "(A)", advance="NO"), "Masukkan bilangan inisiasi : "
    read*, init
    write(*, "(A)", advance="NO"), "Masukkan banyak looping : "
    read*, loop
 
    x = init
 
    do i = 0, loop
        x = x - ((x**2 + x - cos(x * PHI / 180)) / (2*x + 1 + sin(x * PHI / 180)))
        print*, x
    end do
 
    print*, "Solusi persamaan x^2 + x = cos(x) adalah x = ", x
end program newtonRaphson

Fortran for Engineer

Selama 2 minggu ini saya belajar fortran. Ternyata bahasa yang satu ini cukup menarik bagi saya. Bagi programmer sejati yang berkecimpung di dunia IT, mungkin Fortran dianggap sesuatu yang jadul dan jarang dipakai. Terbukti dari teman saya di jurusan informatika heran mengapa saya memakai Fortran dan bukan bahasa modern lain seperti C++.

Fortran didesain untuk para peneliti yang ingin mengembangkan aplikasi berbasis science. Artinya fortran didesain untuk engineer. Berbagai program simulasi, metoda numerik, dan perhitungan lainnya bisa dikerjakan dengan fortran. Perbedaan dengan bahasa lain seperti Java dan C terletak pada kemudahan pengolahan angka. Para pengembang aplikasi yang memakai fortran akan fokus ke penulisan program bukan kepada bahasa pemrograman itu sendiri 😀

Bahasa C++ adalah bahasa yang powerful, bisa digunakan untuk berbagai macam keperluan, mulai dari pembuatan aplikasi sederhana, berkomunikasi langsung dengan mesin, dan pembuatan perangkat cerdas bisa dilakukan dengan bahasa C/C++ atau Java. Karna kemampuannya inilah kadang kala kita sebagai engineer di bidang masing-masing, yang tidak terlalu mendalami pemrograman, kadang tidak kuat untuk mempelajari banyak fitur-fitur tersebut. Saya sendiri sudah mengalaminya lho, rasanya ga kuat, hahaha :p

Untuk itulah fortran ada sehingga pekerjaan kita hanya fokus ke pembuatan aplikasi, bukan fokus ke bahasa pemrograman. Tentu saja dengan belajar dan latihan yang cukup kita bisa membuat aplikasi yang kita inginkan.

Fortran bisa dipakai di linux dengan menggunakan compiler gfortran/f95, f90, ifort (Intel Fortran). Sedangkan di Windows, bisa menggunakan gfortran. Intel Fortran adalah produk compiler yang bersifat berbayar jika ingin mengunduhnya.

Satu kekurangan fortran adalah saya belum menemukan aplikasi GUI yang dikhusukan untuk Fortran. Jika ingin membuat aplikasi fortran, harus menggunakan konsol. Saya pernah mendengar Visual Fortan dan tampaknya program ini juga berbayar untuk mendapatkannya.

Untuk tutorial dan ebook, kamu bisa menggunakan tulisan dari www-eio.upc.es/lceio/manuals/Fortran95Manual.pdf dan dari alamat http://www.sdsc.edu/~tkaiser/f90.html

Semoga bermanfaat 😀