SlideShare a Scribd company logo
1 of 20
1. Metoda Bisection

b. 3x - ex=0

#include<stdio.h>
#include<math.h>
#include<conio.h>

float f(float x)
      {
      float d;
      d=(3*x)-exp(x);
      return d;
      }

main()
{
   float a,b,c,error,toleransi;
   int i=0;

   printf("Batas bawah (x1) = "); scanf("%f",&a);
   printf("Batas atas (x2) = "); scanf("%f",&b);
   printf("Toleransi        = "); scanf("%f",&toleransi);

   if(f(a)*f(b) > 0)
                  {
                  printf("n Nilai F(x1) x F(x2) > 0 : "
                        " tidak ada akar di antara x1 dan x2n");
                   }
   else
   {
   printf("ni.     x1   x2    x3     f(x1)   f(x2)   f(x3)   error
   n");
   do
      {
      c = (a + b) / 2;
      error = (fabs(b-a))/2;
      printf("%d %.3f %.3f %.3f | %.3ft%.3ft%.3ft
      %.3fn",i,a,b,c,f(a),f(b),f(c) ,error);
      if ( (f(a) * f(c)) < 0)
           {b=c;}
           else
           {a=c;}
      i++;

      }
 while( error > toleransi);
   printf("nSolusi akar adalah = %fn",c);
   printf("Banyaknya iterasi = %d",i);
 }
getch();
return 0;
}




c. x2-4x-4-ln x=0

#include<stdio.h>
#include<math.h>
#include<conio.h>

float f(float x)
{
      float d;
      d=(x*x)-(4*x)-4-log(x);
      return d;
}

main()
{

float a,b,c,error,toleransi;
int i=0;
printf("Batas bawah (x1) = "); scanf("%f",&a);
printf("Batas atas (x2) = "); scanf("%f",&b);
printf("Toleransi        = "); scanf("%f",&toleransi);

if(f(a)*f(b) > 0)
                {
                printf("n Nilai F(x1) x F(x2) > 0 : "
                      " tidak ada akar di antara x1 dan x2n");
                 }
else
{
printf("ni.   x1    x2    x3     f(x1)  f(x2)   f(x3)
errorn");
do
{
c = (a + b) / 2;
error = (fabs(b-a))/2;
printf("%d %.3f %.3f %.3f | %.3ft%.3ft%.3ft
%.3fn",i,a,b,c,f(a),f(b),f(c),error);
if ( (f(a) * f(c)) < 0)
     {b=c;}
     else
     {a=c;}
i++;

}
while( error > toleransi);

printf("nSolusi akar adalah = %fn",c);
printf("Banyaknya iterasi = %d",i);
}
getch();
return 0;
}




d. xcosx-2x2+3x-1=0

#include<stdio.h>
#include<math.h>
#include<conio.h>

float f(float x)
{
      float d;
d=(x*cos(x))-(2*x*x)+(3*x)-1;
      return d;
}

main()
{

float a,b,c,error,toleransi;
int i=0;

printf("Batas bawah (x1) = "); scanf("%f",&a);
printf("Batas atas (x2) = "); scanf("%f",&b);
printf("Toleransi        = "); scanf("%f",&toleransi);

if(f(a)*f(b) > 0)
{
printf("n Nilai F(x1) x F(x2) > 0 : "
" tidak ada akar di antara x1 dan x2n");
}
else
{
printf("ni.   x1    x2    x3     f(x1)   f(x2)   f(x3)
errorn");
do
{
c = (a + b) / 2;
error = (fabs(b-a))/2;
printf("%d %.3f %.3f %.3f | %.3ft%.3ft%.3ft
%.3fn",i,a,b,c,f(a),f(b),f(c)
                                                          ,error)
;

if ( (f(a) * f(c)) < 0)
{b=c;}
else
{a=c;}
i++;
}
while( error > toleransi);

printf("nSolusi akar adalah = %fn",c);
printf("Banyaknya iterasi = %d",i);
}
getch();
return 0;
}
2. Iterasi Titik Tetap


a. x3+4x2-10=0
#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d= (x*x*x) + (4*x*x) -10 ;
   return d;
}

float g(float x)
{
   float d;
      d= (pow((10-(x*x*x)),0.5))/2;
   return d;
}

main()
{
  float a,b,error,toleransi;
  int i=0;

     printf("Titik awal (x1) = "); scanf("%f",&a);
               printf("Toleransi       = ");
scanf("%f",&toleransi);

                printf("ni.    x1      |x2 - x1|n");
                printf("%d   %f          -n",i,a);
do
    {
    b= g(a);
    error = (fabs(b-a))   ;
    printf("%d   %ft %fn",i+1,b,error);
    a=b;
    i++;
}while( error > toleransi);

 printf("nSolusi akar adalah = %fn",b);
 printf("Banyaknya iterasi = %d",i+1);

    getch();
    return 0;
}
b. 3x-ex=0

#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d= (3*x)-exp(x);
   return d;
}

float g(float x)
{
   float d;
      d= (pow((10-(x*x*x)),0.5))/2;
   return d;
}

main()
{
  float a,b,error,toleransi;
  int i=0;

     printf("Titik awal (x1) = "); scanf("%f",&a);
               printf("Toleransi       = ");
scanf("%f",&toleransi);

               printf("ni.    x1       |x2 - x1|n");
               printf("%d   %f           -n",i,a);
do
    {
    b= g(a);
    error = (fabs(b-a))   ;
    printf("%d   %ft %fn",i+1,b,error);
    a=b;
    i++;
}while( error > toleransi);

 printf("nSolusi akar adalah = %fn",b);
 printf("Banyaknya iterasi = %d",i+1);

    getch();
    return 0;
}




c. x2-4x-4-ln x=0
#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d= (x*x)-(4*x)-4-log(x);
   return d;
}

float g(float x)
{
   float d;
      d= (x*x)-4-log(x)/4;
   return d;
}

main()
{
 float a,b,error,toleransi;
 int i=0;

     printf("Titik awal (x1) = "); scanf("%f",&a);
               printf("Toleransi       = ");
scanf("%f",&toleransi);

                printf("ni.    x1      |x2 - x1|n");
                printf("%d   %f          -n",i,a);
do
    {
    b= g(a);
    error = (fabs(b-a))   ;
    printf("%d   %ft %fn",i+1,b,error);
    a=b;
    i++;
}while( error > toleransi);

 printf("nSolusi akar adalah = %fn",b);
 printf("Banyaknya iterasi = %d",i+1);

    getch();
    return 0;
}




d. xcosx-2x2+3x-1=0

#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d= (x*cos(x))-(2*x*x)+(3*x)-1;
   return d;
}

float g(float x)
{
     float d;
        d= ((2*x*x)-(3*x) + 1)/(cos(x));
     return d;
}

main()
{
  float a,b,error,toleransi;
  int i=0;

     printf("Titik awal (x1) = "); scanf("%f",&a);
               printf("Toleransi       = ");
scanf("%f",&toleransi);

                printf("ni.    x1         |x2 - x1|n");
                printf("%d   %f             -n",i,a);
do
    {
    b= g(a);
    error = (fabs(b-a))   ;
    printf("%d   %ft %fn",i+1,b,error);
    a=b;
    i++;
}while( error > toleransi);

 printf("nSolusi akar adalah = %fn",b);
 printf("Banyaknya iterasi = %d",i+1);

    getch();
    return 0;
}
3. Raphson Newton

a. x3+4x2-10=0
#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d= (x*x*x) + (4*x*x) -10;
   return d;
}

float df(float x)
{
   float d;
      d= (3*x*x) + (8*x) ;
   return d;
}

main()
{
   float a,b,error,toleransi;
   int i=0;

     printf("Titik awal (x1) = "); scanf("%f",&a);
     printf("Toleransi       = "); scanf("%f",&toleransi);

                 printf("i.   x1       |x2 -x1|n");
                 printf("%d   %.3f        -n",i,a);

if(df(a) == 0)
   {
     printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
     getch();
     return 0;
   }
else
{

do
{

b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d    %.3ft%.3fn",i+1,b,error);
a=b;

i++;

}while(      error   > toleransi );

printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
}




b. 3x-ex=0
#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d= 3*x-exp(x);
   return d;
}

float df(float x)
{
   float d;
      d= 3-exp(x) ;
   return d;
}

main()
{
   float a,b,error,toleransi;
   int i=0;

   printf("Titik awal (x1) = "); scanf("%f",&a);
   printf("Toleransi       = "); scanf("%f",&toleransi);
printf("i.     x1     |x2 -x1|n");
                   printf("%d     %.3f      -n",i,a);

if(df(a) == 0)
   {
     printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
     getch();
     return 0;
   }
else
{

do
{

b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d    %.3ft%.3fn",i+1,b,error);
 a=b;

i++;

}while(    error      > toleransi );

printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
}




c. xcosx-2x2+3x-1=0

#include <stdio.h>
#include <math.h>
#include <conio.h>
float f(float x)
{
   float d;
      d=(x*cos(x))-(2*x*x)+(3*x)-1;
   return d;
}

float df(float x)
{
   float d;
      d=cos(x)-(x*sin(x))-(4*x)+3 ;
   return d;
}

main()
{
   float a,b,error,toleransi;
   int i=0;

     printf("Titik awal (x1) = "); scanf("%f",&a);
     printf("Toleransi       = "); scanf("%f",&toleransi);

                  printf("i.   x1      |x2 -x1|n");
                  printf("%d   %.3f       -n",i,a);

if(df(a) == 0)
   {
     printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
     getch();
     return 0;
   }
else
{

do
{

b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d    %.3ft%.3fn",i+1,b,error);
 a=b;

i++;

}while(   error    > toleransi );

printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
}




d. x2-4x-4-ln x=0
#include <stdio.h>
#include <math.h>
#include <conio.h>

float f(float x)
{
   float d;
      d=(x*x)-(4*x)-4-log(x);
   return d;
}

float df(float x)
{
   float d;
      d=(2*x)-4-(1/x) ;
   return d;
}

main()
{
   float a,b,error,toleransi;
   int i=0;

    printf("Titik awal (x1) = "); scanf("%f",&a);
    printf("Toleransi       = "); scanf("%f",&toleransi);

                    printf("i.   x1     |x2 -x1|n");
                    printf("%d   %.3f      -n",i,a);

if(df(a) == 0)
   {
     printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan
perhitungan");
     getch();
     return 0;
   }
else
{

do
{

b = a - (f(a)/df(a));
error = fabs(b-a);
printf("%d    %.3ft%.3fn",i+1,b,error);
 a=b;

i++;

}while(   error   > toleransi );

printf("solusi akar adalah = %fn",b);
printf("banyaknya iterasi = %d",i+1);
}
getch();
return 0;
}
Tugas Akhir
     1. a. Program dengan Metoda secant f(x) = cos(x)- x3 = 0.

#include <stdio.h>
#include <math.h>

double f(double x)
{
   return cos(x) - x*x*x;
}
  double FalsiMethod(double s, double t, double e, int m)
{
   int n,side=0;
   double r,fr,fs = f(s),ft = f(t);

     for (n = 1; n <= m; n++)
     {
         r = (fs*t - ft*s) / (fs - ft);
         if (fabs(t-s) < e*fabs(t+s)) break;
         fr = f(r);

          if (fr * ft > 0)
          {
            t = r; ft = fr;
            if (side==-1) fs /= 2;
            side = -1;
          }
          else if (fs * fr > 0)
          {
            s = r; fs = fr;
            if (side==+1) ft /= 2;
            side = +1;
          }
          else break;
     }
     return r;
 }
  int main(void)
 {
     printf("%0.15fn", FalsiMethod(0, 1, 5E-15, 100));
     return 0;
 }

        b. Metoda regula falsi
Analisis


       Pada praktikum kali ini, praktikan diharuskan untuk mencari solusi akar persamaan
nonlinier menggunakan minimal 3 metode, yaitu metode bisection, metode iterasi titik
tetap, dan metode Newton-Raphson.
       Pada metode bisection, terlebih dahulu kita harus menentukan 2 titik sebagai acuan
pencarian akar persamaan tersebut. Diharapkan, akar-akar persamaan tersebut berada di
antara kedua titik yang kita tentukan tersebut. Saat kita menentukan titik, misalkan a dan b,
kita harus memperhatikan syarat dari metode bisection ini yaitu, f ( a) × f (b) < 0 , bila
syarat tersebut tidak terpenuhi maka kita harus menentukan titik yang lain karena pada
kedua titik pertama tersebut tidak terdapat solusi akar dari persamaan nonlinier. Setelah
kita menentukan kedua titik tersebut dan syarat di atas terpenuhi, lalu kita menentukan
toleransi. Toleransi ini adalah batas kita melakukan penghitungan atau iterasi. Program
akan melakukan iterasi sampai dengan selisih antara akar sebenarnya dengan akar yang
mendekati mencapai suatu nilai, nilai ini yang disebut dengan toleransi. Program akan
berhenti bila toleransi telah terpenuhi dan program tidak akan melakukan penghitungan bila
tidak terdapat akar di antara kedua titik yang kita tentukan seperti pada kasus di atas. Pada
praktikum kali ini tidak ditemukan kesulitan dan kesalahan yang berarti pada pencarian
akar persamaan nonlinier menggunakan metode bisection ini.
       Pada pencarian akar-akar persamaan nonlinier menggunakan metode iterasi titik
tetap, kita tidak memerlukan 2 titik untuk menentukan akar yang mungkin terdapat di
antara kedua titik tersebut. Yang diperlukan adalah sebuah tebakan awal akar atau dua buah
tebakan yang tidak memerlukan 2 titik yang mengurung akar persamaan tersebut. Metode

ini mengubah fungsi f (x ) menjadi g (x) dengan syarat g ′( x) < 1 dimana x adalah titik
yang ditentukan pada saat melakukan iterasi. Pada praktikum menggunakan metode iterasi
titik tetap ini, ditemukan kesalahan dalam pencarian akar persamaan x 2 − 4 x − 4 − ln x = 0

dan x cos x − 2 x 2 + 3x − 1 = 0 . Hal ini mungkin disebabkan karena kasalahan dalam

menentukan fungsi g (x) nya. Kesalahan ini menyebabkan hasil pencarian akar pada kedua
persamaan ini tidak sesuai dengan yang diharapkan semula.
Selanjutnya menggunakan metode Newton-Raphson. Metode ini adalah metode
yang paling handal untuk menentukan akar dari persamaan-persamaan nonlinier. Metode
ini menyelesaikan persamaan non linear f (x) dengan pendekatan garis singgung dengan

                                    f ( x0 )
menggunakan persamaan: x = x 0 −                , f ′( x) ≠ 0 . Seperti pada metode iterasi titik
                                    f ′( x0 )

tetap, metode ini hanya memerlukan satu buah titik tebakan. Pada pencarian akar-akar
persamaan menggunakan metode Newton-Raphson dalam praktikum ini, didapatkan
kesalahan pada hasil akar pada persamaan x 2 − 4 x − 4 − ln x = 0 . Hal ini mungkin
disebabkan oleh kesalahan pada menentukan turunan atau diferensial dari fungsi tersebut
sehingga hasil akar dari persamaan tersebut tidak seperti yang diharapkan.
Kesimpulan


       Dengan menggunakan metode bisection, iterasi titik tetap, dan Newton-Raphson
kita dapat menentukan akar dari persamaan-persamaan nonlinier. Setiap metode memiliki
kekurangan dan kelebihan dibandingkan metode yang lainnya.
       Berikut adalah beberapa kekurangan dan kelebihan masing-masing metode
dibandingkan dengan yang lainnya.
Metode Bisection:
   -   Bila dalam selang [a,b] terdapat lebih dari satu akar (banyaknya akar ganjil), hanya
       satu buah akar yang dapat ditemukan.
   -   Metode ini tidak berhasil menemukan akar ganda. Hal ini karena tidak terdapat
       perbedaan tanda di ujung-ujung selang yang baru.
   -   Hampiran akar yang didapatkan mendekati akar sejati (konvergen).
   -   Memiliki tingkat kesalahan yang kecil.
   -   Dibutuhkan waktu yang lama dalam pencarian akar menggunakan metode ini.
Metode Iterasi Titik Tetap:
   -   Tidak memerlukan dua titik sebagai pembatas untuk mencari akar.
   -   Tidak berlaku untuk semua fungsi, sehingga perlu untuk memeriksa bentuk fungsi.
   -   Lambat dalam proses penghitungan.
Metode Newton-Raphson:
   -   Tidak dapat digunakan ketika titik pendekatannya berada pada titik ekstrim atau
       titik puncak, karena pada titik ini nilai f ′( x ) = 0 . Bila titik pendekatan berada pada
       titik puncak, maka titik selanjutnya akan berada di tak hingga.
   -   Bila titik pendekatannya berada di antara dua titik stasioner akan dapat
       mengakibatkan hilangnya penyelesaian (Divergen).

More Related Content

What's hot

Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...
Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...
Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...Fajar Perdana
 
Inversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid Search
Inversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid SearchInversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid Search
Inversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid SearchFajar Perdana
 
Ahmad saputra soal 9 dan 16
Ahmad saputra soal 9 dan 16Ahmad saputra soal 9 dan 16
Ahmad saputra soal 9 dan 16AhmadSaputra38
 
Alternatif 2 terbesar
Alternatif 2 terbesarAlternatif 2 terbesar
Alternatif 2 terbesaristwiariindri
 
Pertemuan iv
Pertemuan ivPertemuan iv
Pertemuan ivwindi1
 
Pertemuan 3 : Algoritma & Pemrograman
Pertemuan 3 : Algoritma & PemrogramanPertemuan 3 : Algoritma & Pemrograman
Pertemuan 3 : Algoritma & PemrogramanTri Retna
 
Kelompok3farmasi matematika ppt
Kelompok3farmasi matematika pptKelompok3farmasi matematika ppt
Kelompok3farmasi matematika pptGeTakapulungang
 
Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Fazar Ikhwan Guntara
 

What's hot (20)

modul algoritma Bab 3
modul algoritma Bab 3modul algoritma Bab 3
modul algoritma Bab 3
 
Tugas alogaritma
Tugas alogaritmaTugas alogaritma
Tugas alogaritma
 
Program akar
Program akarProgram akar
Program akar
 
Kalkulator
KalkulatorKalkulator
Kalkulator
 
Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...
Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...
Pendekatan Inversi Linier dengan Matriks Jacobi pada Kasus Permodelan Gravity...
 
Algoritma matematika
Algoritma matematika Algoritma matematika
Algoritma matematika
 
Presentation1
Presentation1Presentation1
Presentation1
 
Inversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid Search
Inversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid SearchInversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid Search
Inversi Non-Linier Dengan Pendekatan Global: Systematic And Random Grid Search
 
Ahmad saputra soal 9 dan 16
Ahmad saputra soal 9 dan 16Ahmad saputra soal 9 dan 16
Ahmad saputra soal 9 dan 16
 
Alternatif 1 3.2
Alternatif 1 3.2Alternatif 1 3.2
Alternatif 1 3.2
 
Tipe data
Tipe dataTipe data
Tipe data
 
97745784 asna-pascal
97745784 asna-pascal97745784 asna-pascal
97745784 asna-pascal
 
M05c perulangan2
M05c  perulangan2M05c  perulangan2
M05c perulangan2
 
Laporan metnum 1
Laporan metnum 1Laporan metnum 1
Laporan metnum 1
 
Alternatif 2 terbesar
Alternatif 2 terbesarAlternatif 2 terbesar
Alternatif 2 terbesar
 
Pertemuan iv
Pertemuan ivPertemuan iv
Pertemuan iv
 
modul algoritma Bab 2
modul algoritma Bab 2modul algoritma Bab 2
modul algoritma Bab 2
 
Pertemuan 3 : Algoritma & Pemrograman
Pertemuan 3 : Algoritma & PemrogramanPertemuan 3 : Algoritma & Pemrograman
Pertemuan 3 : Algoritma & Pemrograman
 
Kelompok3farmasi matematika ppt
Kelompok3farmasi matematika pptKelompok3farmasi matematika ppt
Kelompok3farmasi matematika ppt
 
Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma
 

Viewers also liked

2m skeleton slot yagi stack
2m skeleton slot yagi stack2m skeleton slot yagi stack
2m skeleton slot yagi stackGayan Sameera
 
RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012
RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012
RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012Dançe Automotivo
 
Asignacion ii .deximar.boza
Asignacion ii .deximar.bozaAsignacion ii .deximar.boza
Asignacion ii .deximar.bozaDeximar Boza
 
Visites escolars presentació
Visites escolars presentacióVisites escolars presentació
Visites escolars presentacióBiblioteca Lloret
 
Sublime text2的介绍与使用
Sublime text2的介绍与使用Sublime text2的介绍与使用
Sublime text2的介绍与使用sonic0828
 
Piazza praticitá - www.paulopop.com
Piazza praticitá - www.paulopop.comPiazza praticitá - www.paulopop.com
Piazza praticitá - www.paulopop.comPaulo Oliveira Pinto
 
Alzheimers Initiative
Alzheimers InitiativeAlzheimers Initiative
Alzheimers InitiativeMark Wilson
 
electricidad y electronica en el tecnico
electricidad y electronica en el tecnicoelectricidad y electronica en el tecnico
electricidad y electronica en el tecniconicolypaula
 
Barcelona University / Universidad de Barcelona
Barcelona University / Universidad de BarcelonaBarcelona University / Universidad de Barcelona
Barcelona University / Universidad de BarcelonaNicholas Socrates
 
Competencias presencial 2012 eie
Competencias presencial 2012 eieCompetencias presencial 2012 eie
Competencias presencial 2012 eieEstado
 
Fórmulas operadores y ejercicios
Fórmulas operadores y ejerciciosFórmulas operadores y ejercicios
Fórmulas operadores y ejercicios96_mavg
 
Ciclo vital administracion documental
Ciclo vital administracion documentalCiclo vital administracion documental
Ciclo vital administracion documentaljeniffer4
 

Viewers also liked (20)

2m skeleton slot yagi stack
2m skeleton slot yagi stack2m skeleton slot yagi stack
2m skeleton slot yagi stack
 
RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012
RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012
RADIO FRUTAL VEJA Revista Veja – Ed. 2274 – 20/06/2012
 
Asignacion ii .deximar.boza
Asignacion ii .deximar.bozaAsignacion ii .deximar.boza
Asignacion ii .deximar.boza
 
Grupo 1
Grupo 1Grupo 1
Grupo 1
 
Erp pmi
Erp pmiErp pmi
Erp pmi
 
Visites escolars presentació
Visites escolars presentacióVisites escolars presentació
Visites escolars presentació
 
Sublime text2的介绍与使用
Sublime text2的介绍与使用Sublime text2的介绍与使用
Sublime text2的介绍与使用
 
lo último!
lo último!lo último!
lo último!
 
Piazza praticitá - www.paulopop.com
Piazza praticitá - www.paulopop.comPiazza praticitá - www.paulopop.com
Piazza praticitá - www.paulopop.com
 
Alzheimers Initiative
Alzheimers InitiativeAlzheimers Initiative
Alzheimers Initiative
 
Muebles
MueblesMuebles
Muebles
 
Presentation1
Presentation1Presentation1
Presentation1
 
electricidad y electronica en el tecnico
electricidad y electronica en el tecnicoelectricidad y electronica en el tecnico
electricidad y electronica en el tecnico
 
Barcelona University / Universidad de Barcelona
Barcelona University / Universidad de BarcelonaBarcelona University / Universidad de Barcelona
Barcelona University / Universidad de Barcelona
 
Competencias presencial 2012 eie
Competencias presencial 2012 eieCompetencias presencial 2012 eie
Competencias presencial 2012 eie
 
Medio ambiente
Medio ambienteMedio ambiente
Medio ambiente
 
47
4747
47
 
Pomnish
PomnishPomnish
Pomnish
 
Fórmulas operadores y ejercicios
Fórmulas operadores y ejerciciosFórmulas operadores y ejercicios
Fórmulas operadores y ejercicios
 
Ciclo vital administracion documental
Ciclo vital administracion documentalCiclo vital administracion documental
Ciclo vital administracion documental
 

Similar to SEKANT

Similar to SEKANT (12)

Akar persamaan
Akar persamaanAkar persamaan
Akar persamaan
 
Algo
AlgoAlgo
Algo
 
modul algoritma Bab 6
modul algoritma Bab  6modul algoritma Bab  6
modul algoritma Bab 6
 
Soal Pascal OSN Komputer
Soal Pascal OSN KomputerSoal Pascal OSN Komputer
Soal Pascal OSN Komputer
 
05 for-dowhile-while
05 for-dowhile-while05 for-dowhile-while
05 for-dowhile-while
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
3 adp struktur keputusan
3   adp struktur keputusan3   adp struktur keputusan
3 adp struktur keputusan
 
3 adp struktur keputusan
3   adp struktur keputusan3   adp struktur keputusan
3 adp struktur keputusan
 
3.adp struktur keputusan
3.adp struktur keputusan3.adp struktur keputusan
3.adp struktur keputusan
 
3 adp struktur keputusan
3   adp struktur keputusan3   adp struktur keputusan
3 adp struktur keputusan
 
3 adp struktur keputusan
3   adp struktur keputusan3   adp struktur keputusan
3 adp struktur keputusan
 
Kumpulan Kode C & C++
Kumpulan Kode C & C++Kumpulan Kode C & C++
Kumpulan Kode C & C++
 

SEKANT

  • 1. 1. Metoda Bisection b. 3x - ex=0 #include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { float d; d=(3*x)-exp(x); return d; } main() { float a,b,c,error,toleransi; int i=0; printf("Batas bawah (x1) = "); scanf("%f",&a); printf("Batas atas (x2) = "); scanf("%f",&b); printf("Toleransi = "); scanf("%f",&toleransi); if(f(a)*f(b) > 0) { printf("n Nilai F(x1) x F(x2) > 0 : " " tidak ada akar di antara x1 dan x2n"); } else { printf("ni. x1 x2 x3 f(x1) f(x2) f(x3) error n"); do { c = (a + b) / 2; error = (fabs(b-a))/2; printf("%d %.3f %.3f %.3f | %.3ft%.3ft%.3ft %.3fn",i,a,b,c,f(a),f(b),f(c) ,error); if ( (f(a) * f(c)) < 0) {b=c;} else {a=c;} i++; } while( error > toleransi); printf("nSolusi akar adalah = %fn",c); printf("Banyaknya iterasi = %d",i); } getch();
  • 2. return 0; } c. x2-4x-4-ln x=0 #include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { float d; d=(x*x)-(4*x)-4-log(x); return d; } main() { float a,b,c,error,toleransi; int i=0; printf("Batas bawah (x1) = "); scanf("%f",&a); printf("Batas atas (x2) = "); scanf("%f",&b); printf("Toleransi = "); scanf("%f",&toleransi); if(f(a)*f(b) > 0) { printf("n Nilai F(x1) x F(x2) > 0 : " " tidak ada akar di antara x1 dan x2n"); } else {
  • 3. printf("ni. x1 x2 x3 f(x1) f(x2) f(x3) errorn"); do { c = (a + b) / 2; error = (fabs(b-a))/2; printf("%d %.3f %.3f %.3f | %.3ft%.3ft%.3ft %.3fn",i,a,b,c,f(a),f(b),f(c),error); if ( (f(a) * f(c)) < 0) {b=c;} else {a=c;} i++; } while( error > toleransi); printf("nSolusi akar adalah = %fn",c); printf("Banyaknya iterasi = %d",i); } getch(); return 0; } d. xcosx-2x2+3x-1=0 #include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { float d;
  • 4. d=(x*cos(x))-(2*x*x)+(3*x)-1; return d; } main() { float a,b,c,error,toleransi; int i=0; printf("Batas bawah (x1) = "); scanf("%f",&a); printf("Batas atas (x2) = "); scanf("%f",&b); printf("Toleransi = "); scanf("%f",&toleransi); if(f(a)*f(b) > 0) { printf("n Nilai F(x1) x F(x2) > 0 : " " tidak ada akar di antara x1 dan x2n"); } else { printf("ni. x1 x2 x3 f(x1) f(x2) f(x3) errorn"); do { c = (a + b) / 2; error = (fabs(b-a))/2; printf("%d %.3f %.3f %.3f | %.3ft%.3ft%.3ft %.3fn",i,a,b,c,f(a),f(b),f(c) ,error) ; if ( (f(a) * f(c)) < 0) {b=c;} else {a=c;} i++; } while( error > toleransi); printf("nSolusi akar adalah = %fn",c); printf("Banyaknya iterasi = %d",i); } getch(); return 0; }
  • 5. 2. Iterasi Titik Tetap a. x3+4x2-10=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d= (x*x*x) + (4*x*x) -10 ; return d;
  • 6. } float g(float x) { float d; d= (pow((10-(x*x*x)),0.5))/2; return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("ni. x1 |x2 - x1|n"); printf("%d %f -n",i,a); do { b= g(a); error = (fabs(b-a)) ; printf("%d %ft %fn",i+1,b,error); a=b; i++; }while( error > toleransi); printf("nSolusi akar adalah = %fn",b); printf("Banyaknya iterasi = %d",i+1); getch(); return 0; }
  • 7. b. 3x-ex=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d= (3*x)-exp(x); return d; } float g(float x) { float d; d= (pow((10-(x*x*x)),0.5))/2; return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("ni. x1 |x2 - x1|n"); printf("%d %f -n",i,a);
  • 8. do { b= g(a); error = (fabs(b-a)) ; printf("%d %ft %fn",i+1,b,error); a=b; i++; }while( error > toleransi); printf("nSolusi akar adalah = %fn",b); printf("Banyaknya iterasi = %d",i+1); getch(); return 0; } c. x2-4x-4-ln x=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d= (x*x)-(4*x)-4-log(x); return d; } float g(float x) { float d; d= (x*x)-4-log(x)/4; return d; } main()
  • 9. { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("ni. x1 |x2 - x1|n"); printf("%d %f -n",i,a); do { b= g(a); error = (fabs(b-a)) ; printf("%d %ft %fn",i+1,b,error); a=b; i++; }while( error > toleransi); printf("nSolusi akar adalah = %fn",b); printf("Banyaknya iterasi = %d",i+1); getch(); return 0; } d. xcosx-2x2+3x-1=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d= (x*cos(x))-(2*x*x)+(3*x)-1; return d; } float g(float x)
  • 10. { float d; d= ((2*x*x)-(3*x) + 1)/(cos(x)); return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("ni. x1 |x2 - x1|n"); printf("%d %f -n",i,a); do { b= g(a); error = (fabs(b-a)) ; printf("%d %ft %fn",i+1,b,error); a=b; i++; }while( error > toleransi); printf("nSolusi akar adalah = %fn",b); printf("Banyaknya iterasi = %d",i+1); getch(); return 0; }
  • 11. 3. Raphson Newton a. x3+4x2-10=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d= (x*x*x) + (4*x*x) -10; return d; } float df(float x) { float d; d= (3*x*x) + (8*x) ; return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("i. x1 |x2 -x1|n"); printf("%d %.3f -n",i,a); if(df(a) == 0) { printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan perhitungan"); getch(); return 0; } else { do { b = a - (f(a)/df(a)); error = fabs(b-a); printf("%d %.3ft%.3fn",i+1,b,error);
  • 12. a=b; i++; }while( error > toleransi ); printf("solusi akar adalah = %fn",b); printf("banyaknya iterasi = %d",i+1); } getch(); return 0; } b. 3x-ex=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d= 3*x-exp(x); return d; } float df(float x) { float d; d= 3-exp(x) ; return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi);
  • 13. printf("i. x1 |x2 -x1|n"); printf("%d %.3f -n",i,a); if(df(a) == 0) { printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan perhitungan"); getch(); return 0; } else { do { b = a - (f(a)/df(a)); error = fabs(b-a); printf("%d %.3ft%.3fn",i+1,b,error); a=b; i++; }while( error > toleransi ); printf("solusi akar adalah = %fn",b); printf("banyaknya iterasi = %d",i+1); } getch(); return 0; } c. xcosx-2x2+3x-1=0 #include <stdio.h> #include <math.h> #include <conio.h>
  • 14. float f(float x) { float d; d=(x*cos(x))-(2*x*x)+(3*x)-1; return d; } float df(float x) { float d; d=cos(x)-(x*sin(x))-(4*x)+3 ; return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("i. x1 |x2 -x1|n"); printf("%d %.3f -n",i,a); if(df(a) == 0) { printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan perhitungan"); getch(); return 0; } else { do { b = a - (f(a)/df(a)); error = fabs(b-a); printf("%d %.3ft%.3fn",i+1,b,error); a=b; i++; }while( error > toleransi ); printf("solusi akar adalah = %fn",b); printf("banyaknya iterasi = %d",i+1); } getch(); return 0;
  • 15. } d. x2-4x-4-ln x=0 #include <stdio.h> #include <math.h> #include <conio.h> float f(float x) { float d; d=(x*x)-(4*x)-4-log(x); return d; } float df(float x) { float d; d=(2*x)-4-(1/x) ; return d; } main() { float a,b,error,toleransi; int i=0; printf("Titik awal (x1) = "); scanf("%f",&a); printf("Toleransi = "); scanf("%f",&toleransi); printf("i. x1 |x2 -x1|n"); printf("%d %.3f -n",i,a); if(df(a) == 0) { printf(" nilai turunan f(x1) = 0 , tidak bisa melakukan perhitungan"); getch(); return 0; }
  • 16. else { do { b = a - (f(a)/df(a)); error = fabs(b-a); printf("%d %.3ft%.3fn",i+1,b,error); a=b; i++; }while( error > toleransi ); printf("solusi akar adalah = %fn",b); printf("banyaknya iterasi = %d",i+1); } getch(); return 0; }
  • 17. Tugas Akhir 1. a. Program dengan Metoda secant f(x) = cos(x)- x3 = 0. #include <stdio.h> #include <math.h> double f(double x) { return cos(x) - x*x*x; } double FalsiMethod(double s, double t, double e, int m) { int n,side=0; double r,fr,fs = f(s),ft = f(t); for (n = 1; n <= m; n++) { r = (fs*t - ft*s) / (fs - ft); if (fabs(t-s) < e*fabs(t+s)) break; fr = f(r); if (fr * ft > 0) { t = r; ft = fr; if (side==-1) fs /= 2; side = -1; } else if (fs * fr > 0) { s = r; fs = fr; if (side==+1) ft /= 2; side = +1; } else break; } return r; } int main(void) { printf("%0.15fn", FalsiMethod(0, 1, 5E-15, 100)); return 0; } b. Metoda regula falsi
  • 18. Analisis Pada praktikum kali ini, praktikan diharuskan untuk mencari solusi akar persamaan nonlinier menggunakan minimal 3 metode, yaitu metode bisection, metode iterasi titik tetap, dan metode Newton-Raphson. Pada metode bisection, terlebih dahulu kita harus menentukan 2 titik sebagai acuan pencarian akar persamaan tersebut. Diharapkan, akar-akar persamaan tersebut berada di antara kedua titik yang kita tentukan tersebut. Saat kita menentukan titik, misalkan a dan b, kita harus memperhatikan syarat dari metode bisection ini yaitu, f ( a) × f (b) < 0 , bila syarat tersebut tidak terpenuhi maka kita harus menentukan titik yang lain karena pada kedua titik pertama tersebut tidak terdapat solusi akar dari persamaan nonlinier. Setelah kita menentukan kedua titik tersebut dan syarat di atas terpenuhi, lalu kita menentukan toleransi. Toleransi ini adalah batas kita melakukan penghitungan atau iterasi. Program akan melakukan iterasi sampai dengan selisih antara akar sebenarnya dengan akar yang mendekati mencapai suatu nilai, nilai ini yang disebut dengan toleransi. Program akan berhenti bila toleransi telah terpenuhi dan program tidak akan melakukan penghitungan bila tidak terdapat akar di antara kedua titik yang kita tentukan seperti pada kasus di atas. Pada praktikum kali ini tidak ditemukan kesulitan dan kesalahan yang berarti pada pencarian akar persamaan nonlinier menggunakan metode bisection ini. Pada pencarian akar-akar persamaan nonlinier menggunakan metode iterasi titik tetap, kita tidak memerlukan 2 titik untuk menentukan akar yang mungkin terdapat di antara kedua titik tersebut. Yang diperlukan adalah sebuah tebakan awal akar atau dua buah tebakan yang tidak memerlukan 2 titik yang mengurung akar persamaan tersebut. Metode ini mengubah fungsi f (x ) menjadi g (x) dengan syarat g ′( x) < 1 dimana x adalah titik yang ditentukan pada saat melakukan iterasi. Pada praktikum menggunakan metode iterasi titik tetap ini, ditemukan kesalahan dalam pencarian akar persamaan x 2 − 4 x − 4 − ln x = 0 dan x cos x − 2 x 2 + 3x − 1 = 0 . Hal ini mungkin disebabkan karena kasalahan dalam menentukan fungsi g (x) nya. Kesalahan ini menyebabkan hasil pencarian akar pada kedua persamaan ini tidak sesuai dengan yang diharapkan semula.
  • 19. Selanjutnya menggunakan metode Newton-Raphson. Metode ini adalah metode yang paling handal untuk menentukan akar dari persamaan-persamaan nonlinier. Metode ini menyelesaikan persamaan non linear f (x) dengan pendekatan garis singgung dengan f ( x0 ) menggunakan persamaan: x = x 0 − , f ′( x) ≠ 0 . Seperti pada metode iterasi titik f ′( x0 ) tetap, metode ini hanya memerlukan satu buah titik tebakan. Pada pencarian akar-akar persamaan menggunakan metode Newton-Raphson dalam praktikum ini, didapatkan kesalahan pada hasil akar pada persamaan x 2 − 4 x − 4 − ln x = 0 . Hal ini mungkin disebabkan oleh kesalahan pada menentukan turunan atau diferensial dari fungsi tersebut sehingga hasil akar dari persamaan tersebut tidak seperti yang diharapkan.
  • 20. Kesimpulan Dengan menggunakan metode bisection, iterasi titik tetap, dan Newton-Raphson kita dapat menentukan akar dari persamaan-persamaan nonlinier. Setiap metode memiliki kekurangan dan kelebihan dibandingkan metode yang lainnya. Berikut adalah beberapa kekurangan dan kelebihan masing-masing metode dibandingkan dengan yang lainnya. Metode Bisection: - Bila dalam selang [a,b] terdapat lebih dari satu akar (banyaknya akar ganjil), hanya satu buah akar yang dapat ditemukan. - Metode ini tidak berhasil menemukan akar ganda. Hal ini karena tidak terdapat perbedaan tanda di ujung-ujung selang yang baru. - Hampiran akar yang didapatkan mendekati akar sejati (konvergen). - Memiliki tingkat kesalahan yang kecil. - Dibutuhkan waktu yang lama dalam pencarian akar menggunakan metode ini. Metode Iterasi Titik Tetap: - Tidak memerlukan dua titik sebagai pembatas untuk mencari akar. - Tidak berlaku untuk semua fungsi, sehingga perlu untuk memeriksa bentuk fungsi. - Lambat dalam proses penghitungan. Metode Newton-Raphson: - Tidak dapat digunakan ketika titik pendekatannya berada pada titik ekstrim atau titik puncak, karena pada titik ini nilai f ′( x ) = 0 . Bila titik pendekatan berada pada titik puncak, maka titik selanjutnya akan berada di tak hingga. - Bila titik pendekatannya berada di antara dua titik stasioner akan dapat mengakibatkan hilangnya penyelesaian (Divergen).