Kamis, 17 Oktober 2019

Tugas Metode Numerik


Nim                 : 1730511097
Nama             : Salmaa Felia Mentari
Prodi               : Teknik Informatika
Mata Kuliah : Metode Numerik

Metode Tabulasi dan Biseksi
A.   Metode Tabulasi

1.    Program Tabulasi
#include <stdio.h>
#include <math.h>
float b,a,n,h,e,x[100],y[100];
int i,j;
float f(float x){
            return(exp(-x)-x);
}
void tabel(){
            puts("tMetode Tabel");
            puts("\t===================\n");
            printf("t Fungsi\t= F(x)=exp(-x)-x\n");
            printf("Masukkan batas bawah\t= ");
            scanf("%f", &b);
            printf("Masukkan batas atas\t= ");
            scanf("%f", &a);
            printf("Masukkan iterasi\t\t= ");
            scanf("%f", &n);
            printf("Toleransi Error\t\t= ");
            scanf("%f", &e);
            h = (a - b)/n;
            printf("i\t\tx\t\t\tfx\n");
            for(i=0;i<n+1;i++){
                        x[i]=b+(i*h);
                        y[i]=f(x[i]);
                        printf("%d\t\t%f\t\t%f\n" ,i,x[i],y[i]);
            }
            for(j=0;j<n-1;j++){
                        if((y[j]*y[j+1])<0){
                                    printf("\nAkar diantara %f & %f\n" ,x[j] ,x[j+1]);
                                    if(fabs(y[j])<fabs(y[j+1])) {
                                                printf("Akar lebih dekat ke %f\n" , x[j]);
                                                printf("Toleransi error = %f" , y[j]);
                                    }else{
                                                printf("Akar lebih dekat ke %f\n" , x[j+1]);
                                                printf("Toleransi error = %f", y[j+1]);
                                    }
                        }
            }
}
main(){
            tabel();
}







2.    Flowchart Tabulasi

  
3.    Algoritma Tabulasi

a.    Menentukan batas atas, batas bawah, iterasi, dan toleransi error dengan fungsi fx = exp (-x)-x
b.    Lalu akan muncul table untuk fungsi interval antara nilai x dan fx
c.    Proses terus berulang hingga f(x) = 0 atau f(x) < toleransi.

B.   Metode Biseksi

1.    Program biseksi
#include<stdio.h>
#include<conio.h>
#include<math.h>

float bisection(float x) {
            float d;
            d=pow(x,2)-(2*pow(x,1))-2;
            return d;
}
main(){
            float x1,x2,xr,error,tol;
            int i=1;
            printf("\n\t\t\t\t\" Metode Bisection\n");
            printf("\t\t\t\t Metode Bagi Dua \" \n");
            printf("\t====================================================\n\n");
            printf("\t\t\t\t x^2-2x-2=0\n\n");
            printf("\tMasukkan batas atas persamaan(x1) : ");scanf("%f,&x1");
            printf("\tMasukkan batas bawah persamaan(x2) : ");scanf("%f,&x2");
            printf("\tMasukkan nilai toleransi : ");scanf("%f,&tol");
            printf("\tTidak ada akar diantara kedua batas persamaan\n");
            {
                        printf("\n \ti\tx1 \tx2 \txr \tf(x1) \tf(x2) \tf(xr) \terror \n");
                        do {
                                    xr=(x1+x2)/2;
                                    error=fabs(x2-x1)/fabs(x2);
                                    printf("\n\t%d\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n",i,x1,x2,xr,bisection(x1),bisection(x2),bisection(xr),error);
                                    if(bisection(x1)*bisection(x2)<0)
                                    x2=xr;
                                    else
                                    x1=xr;
                                    i++;
                        }
                        while(tol<error);
                        printf("\n\tnilai xr terakhir : %.3f\n",xr);
                        printf("tBanyaknya iterasi : %d \n",i-1);
                        printf("\n\t\t\t\t\t\t\tBy :");
                        printf("\n\t\t\t\t\t\t\t---------");
                        printf("\n\t\t\t\t\t\t\tKelompok 1");
            }
            getch();
            return 0;
}



2.    Flowchart Biseksi



                                               
3.    Algortima Biseksi

a.    Tentukan x1, x2, nilai toleransi
b.    Periksa apakah x(1) x x(2) < 0, jika ya keluar dari program karena pada solusi yang diberikan tidak terdapat akar persamaan.
c.    Hitung nilai xr = (x1 + x2)/2
d.    Jika nilai mutlak (x2-x1) < toleransi tuliskan xr sebagai hasil perhitungan dan akhiri program, jika tidak lanjutkan kelangkah selanjutnya.
e.    Jika jumlah iterasi > iterasi maksimukan akhiri program.
f.     Jika x(1) x x(2) < 0, maka xr = x2 atau xr = x1.
g.    Kembali kelangkah c


Referensi
Di akses dari https://sayfudinblogz.blogspot.com pada tanggal 17 Oktober 2019
Di akses dari https://ismuhardwiputra.files.wordpress.com pada tanggal 17 Oktober 2019

Tidak ada komentar:

Posting Komentar