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://www.tedieka.com/2016/04/contoh-program-bisection-dalam-bahasa-c.html?m=1
pada tanggal 17 Oktober 2019
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