METODE NUMERIK DAN BISEKSI
TUGAS METODE NUMERIK
ROSE SETIANA
TEKNIK INFORMATIKA
A.Program, Algoritma, dan Flowchart Metode Tabulasi
a) Program dengan Menggunakan Phyton
#Program Tabulasi
#Soal Cari satu nilai x pada f(x)=x2 – 6x + 1, sehingga f(x) mendekati nilai 0,
#batas presisi 10-7, dimana x berada diantara 0.1 dan 0.9.
#buatlah programnya dan tampilkan hasilnya.
import os
def f(x):
# function for f(x). it regulary change when case change too.
y = x**3 - 7*x + 1
return y
def inputFirst(x1,x2):
# function for input.
x1 = float(input('Enter x1 : '))
x2 = float(input('Enter x2 : '))
return (x1,x2)
def check1(x1,x2):
# function to check if x1 and x2 are qualified to continue.
times = f(x1)*f(x2)
if(times<0):
return (True)
else:
os.system('cls')
print("Nothing found when x1=",x1," and x2= ",x2);
return(False)
# def tesRun1(x1,x2):
# check1(x1,x2)
# x1 = 0.0
# x2 = 0.0
# x1,x2 = inputFirst(x1,x2)
# print (f(x1),f(x2))
# tesRun1(x1,x2)
def update1(x1,x2):
step = (x2-x1)/10.0
x2 = x1+step
if(check1):
while((f(x2)*f(x1))>0):
temp = x2
x2 = x2+step
x1 = temp
return x1,x2
def checkStop(x1,x2,tolerance):
while (abs(f(x1))>tolerance and abs(f(x2))>tolerance):
x1,x2 = update1(x1,x2)
##print ("masuk sini")
if(f(x1)>tolerance):
return x2
else:
return x1
# print (update1(0,1))
# print (f(0),f(0.1),f(0.2))
def main():
tolerance = 0.00000001
x1 = 0.0
x2 = 0.0
x1,x2 = inputFirst(x1,x2)
if(check1(x1,x2)):
x1,x2=update1(x1,x2)
result = checkStop(x1,x2,tolerance)
print (result," -- ", f(result))
else:
print ("Doesn't work")
main()
b). Algoritma
d). Hasil Program
B.Program, Algoritma, dan Flowchart Metode Biseksi
a) Program dengan Menggunakan DevC++
#include<stdio.h>
#include<math.h>
double f(double x)
{
return(exp(-x)-x);
}
main()
{
double fx[100],a,b,error;
double fa,fb,xr,fxr;
int n,i;
printf("===========Metode Biseksi+++++++++++\n");
printf("Masukkan batas bawah a = ");
scanf("%lf",&a);
printf("Masukkan batas atas b = ");
scanf("%lf",&b);
printf("Input toleransi error=");
scanf("%lf",&error);
printf("Input iterasi maksimum=");
scanf("%d",&n);
fa=f(a);
fb=f(b);
if(fa*fb>0)
printf("Akar tidak ditemukan dalam range %g - %g...\n", a, b);
else{
i=0;
while (i<=n){
xr=(a+b)/2;
fx[i]=f(xr);
fxr=f(xr);
printf("%d a=%7lf b=%7lf xr=%7lf fa=%7lf fb=%7lf fxr=%7lf\n",i,a,b,xr,fa,fb,fxr);
if(fx[i]*fa<0){
b=xr;
fb = f(xr);
}
else{
a=xr;
fa = f(xr);
}
i++;
if(fabs(b-a)<=error || i>(n-1)) break;
}
printf("Akarnya adalah %g\n",xr);
printf("Nilai error = %g\n",fabs(fxr));
}
b).Algoritma
a. Definisikan fungsi f(x) yang akan dicari akarnya.
b. Tentukan nialai a dan b.
c. Tentukan toleransi e dan iterasi maksimum N.
d. Hitung nilai f(a) dan f(b)
e. Jika f(a) f(b) < 0 maka proses dihentikan karena tidak ada akar, bila tidak dilanjutkan.
f. Hitung f(xr) bila f(xr) f(a)<0 maka b=xr dan f(b)=f(xr) bila tidak a=xr dan f(a)=f(xr). Jika |b-a| <e atau iterasi >iterasi maksimum maka prosese dihentikan, dan di dapatkan akar = xr, bila tidak ulangi langkah menghitung nilai xr.
c). Flowchart
d) Hasil Program
}
ROSE SETIANA
TEKNIK INFORMATIKA
A.Program, Algoritma, dan Flowchart Metode Tabulasi
a) Program dengan Menggunakan Phyton
#Program Tabulasi
#Soal Cari satu nilai x pada f(x)=x2 – 6x + 1, sehingga f(x) mendekati nilai 0,
#batas presisi 10-7, dimana x berada diantara 0.1 dan 0.9.
#buatlah programnya dan tampilkan hasilnya.
import os
def f(x):
# function for f(x). it regulary change when case change too.
y = x**3 - 7*x + 1
return y
def inputFirst(x1,x2):
# function for input.
x1 = float(input('Enter x1 : '))
x2 = float(input('Enter x2 : '))
return (x1,x2)
def check1(x1,x2):
# function to check if x1 and x2 are qualified to continue.
times = f(x1)*f(x2)
if(times<0):
return (True)
else:
os.system('cls')
print("Nothing found when x1=",x1," and x2= ",x2);
return(False)
# def tesRun1(x1,x2):
# check1(x1,x2)
# x1 = 0.0
# x2 = 0.0
# x1,x2 = inputFirst(x1,x2)
# print (f(x1),f(x2))
# tesRun1(x1,x2)
def update1(x1,x2):
step = (x2-x1)/10.0
x2 = x1+step
if(check1):
while((f(x2)*f(x1))>0):
temp = x2
x2 = x2+step
x1 = temp
return x1,x2
def checkStop(x1,x2,tolerance):
while (abs(f(x1))>tolerance and abs(f(x2))>tolerance):
x1,x2 = update1(x1,x2)
##print ("masuk sini")
if(f(x1)>tolerance):
return x2
else:
return x1
# print (update1(0,1))
# print (f(0),f(0.1),f(0.2))
def main():
tolerance = 0.00000001
x1 = 0.0
x2 = 0.0
x1,x2 = inputFirst(x1,x2)
if(check1(x1,x2)):
x1,x2=update1(x1,x2)
result = checkStop(x1,x2,tolerance)
print (result," -- ", f(result))
else:
print ("Doesn't work")
main()
b). Algoritma
Algoritma Metode Tabulasi
a.
Menentukan interval yakni X1 dan X2 dimana f(X1)
* f(X2) < 0.
b.
Jika telah memenuhi syarat, maka membuat tabel
di antara X1 dan X2 yang menyebabkan terjadinya perubahan tanda pada f(x).
c.
Proses terus berulang hingga f(x) = 0 atau f(x)
< toleransi.
c). Flowchart
c). Flowchart
B.Program, Algoritma, dan Flowchart Metode Biseksi
a) Program dengan Menggunakan DevC++
#include<stdio.h>
#include<math.h>
double f(double x)
{
return(exp(-x)-x);
}
main()
{
double fx[100],a,b,error;
double fa,fb,xr,fxr;
int n,i;
printf("===========Metode Biseksi+++++++++++\n");
printf("Masukkan batas bawah a = ");
scanf("%lf",&a);
printf("Masukkan batas atas b = ");
scanf("%lf",&b);
printf("Input toleransi error=");
scanf("%lf",&error);
printf("Input iterasi maksimum=");
scanf("%d",&n);
fa=f(a);
fb=f(b);
if(fa*fb>0)
printf("Akar tidak ditemukan dalam range %g - %g...\n", a, b);
else{
i=0;
while (i<=n){
xr=(a+b)/2;
fx[i]=f(xr);
fxr=f(xr);
printf("%d a=%7lf b=%7lf xr=%7lf fa=%7lf fb=%7lf fxr=%7lf\n",i,a,b,xr,fa,fb,fxr);
if(fx[i]*fa<0){
b=xr;
fb = f(xr);
}
else{
a=xr;
fa = f(xr);
}
i++;
if(fabs(b-a)<=error || i>(n-1)) break;
}
printf("Akarnya adalah %g\n",xr);
printf("Nilai error = %g\n",fabs(fxr));
}
b).Algoritma
a. Definisikan fungsi f(x) yang akan dicari akarnya.
b. Tentukan nialai a dan b.
c. Tentukan toleransi e dan iterasi maksimum N.
d. Hitung nilai f(a) dan f(b)
e. Jika f(a) f(b) < 0 maka proses dihentikan karena tidak ada akar, bila tidak dilanjutkan.
f. Hitung f(xr) bila f(xr) f(a)<0 maka b=xr dan f(b)=f(xr) bila tidak a=xr dan f(a)=f(xr). Jika |b-a| <e atau iterasi >iterasi maksimum maka prosese dihentikan, dan di dapatkan akar = xr, bila tidak ulangi langkah menghitung nilai xr.
c). Flowchart
d) Hasil Program
}
Komentar
Posting Komentar