Contoh Program Source Code /

Metode Pencarian Akar Dengan Python

Posted on6/17/2013
Join with us

Metode Pencarian Akar

Untuk tugas Rekayasa Komputer kali ini, kami ditugaskan untuk mengubah algoritma dari metode Biseksi (Bagi Dua), Regula falsi , Newton Raphson, dan Secant ke dalam suatu aplikasi matematika tertentu. Aplikasi matematika yang dipakai oleh kelompok kami adalah SAGE.Dengan bahasa bawaannya adalah Pyhton, berikut Algoritma dari metode-metode tersebut:

Metode Pencarian Akar Dengan Python

Metode Bagi Dua



omega=1.5
z_0=1
def f(z): return abs(math.cos(omega*z))-z/z_0 #nilai absolut dari kosinus omega z kurang z/z_0
a=-2
b=1
err=0.00001
n=0
nmax=10000 
# Menentukan variabel-variabel float
dos = float(2); err = float(err)
# Sebelum ke algoritma kita mengevaluasi apakah perubahan fungsi mendaftar di ujung
if (f(a)*f(b)<0 data-blogger-escaped-data-blogger-escaped--="" data-blogger-escaped-data-blogger-escaped-2="" data-blogger-escaped-data-blogger-escaped-2x="" data-blogger-escaped-data-blogger-escaped-a="" data-blogger-escaped-data-blogger-escaped-abs="" data-blogger-escaped-data-blogger-escaped-akar=",c, " data-blogger-escaped-data-blogger-escaped-b="" data-blogger-escaped-data-blogger-escaped-c="(a+b)/dos" data-blogger-escaped-data-blogger-escaped-calculate="" data-blogger-escaped-data-blogger-escaped-carilah="" data-blogger-escaped-data-blogger-escaped-def="" data-blogger-escaped-data-blogger-escaped-default="" data-blogger-escaped-data-blogger-escaped-f="" data-blogger-escaped-data-blogger-escaped-fn="" data-blogger-escaped-data-blogger-escaped-fn_d="" data-blogger-escaped-data-blogger-escaped-if="" data-blogger-escaped-data-blogger-escaped-iterasi=",n
Output:
Akar= -0.5    Nilai= 1.23168886887      Iterasi= 0 (default)     Presisi= 1e-05
Akar= 0.60990524292     Nilai= -2.02227274149e-06      Iterasi= 17
# x1 = x - f(x)/f" data-blogger-escaped-data-blogger-escaped-kar=",c, " data-blogger-escaped-data-blogger-escaped-lambda="" data-blogger-escaped-data-blogger-escaped-n="" data-blogger-escaped-data-blogger-escaped-newthon_method="" data-blogger-escaped-data-blogger-escaped-newton_sqrt="" data-blogger-escaped-data-blogger-escaped-nilai=",f(c)," data-blogger-escaped-data-blogger-escaped-nmax="" data-blogger-escaped-data-blogger-escaped-num="" data-blogger-escaped-data-blogger-escaped-number="" data-blogger-escaped-data-blogger-escaped-of="" data-blogger-escaped-data-blogger-escaped-pertama="" data-blogger-escaped-data-blogger-escaped-pre="" data-blogger-escaped-data-blogger-escaped-precision:="" data-blogger-escaped-data-blogger-escaped-presisi=",err
while abs(f(c))>err: # kondisi mutlak bahwa f (root) lebih besar dari kesalahan (perhatikan nilai absolut)
if f(c)*f(a)<0: # kondisi ini mengembalikan berbagai baru dengan perubahan tanda 
b=c
else:
a=c
n=n+1 # iterasi memiliki
c=(a+b)/dos
print " data-blogger-escaped-data-blogger-escaped-print="" data-blogger-escaped-data-blogger-escaped-return="" data-blogger-escaped-data-blogger-escaped-sqrt="" data-blogger-escaped-data-blogger-escaped-square="" data-blogger-escaped-data-blogger-escaped-tengah="" data-blogger-escaped-data-blogger-escaped-the="" data-blogger-escaped-data-blogger-escaped-titik="" data-blogger-escaped-data-blogger-escaped-true:="" data-blogger-escaped-data-blogger-escaped-while="" data-blogger-escaped-data-blogger-escaped-x0="" data-blogger-escaped-data-blogger-escaped-x1="" data-blogger-escaped-data-blogger-escaped-x:="" data-blogger-escaped-data-blogger-escaped-x="">

Output:

804.5
404.247513984
206.099044271
110.846744125
69.9208659915
57.9435579501
56.7056644466
56.6921527424
56.692151132233484

Metode Secant



PRECISION = 0.00001
# x2 = x1 - ((x1-x0)/(fn(x1)-fn(x0)))*fn(x1)
def secant_method(x0,x1,fn):
while True:
x2 = x1 - ((x1-x0)/(fn(x1)-fn(x0)))*fn(x1)
if abs(x2 - x1) <= RECISION: return x2
x0 = x1
x1 = x2
print x2
# calculate the square sqrt of a number
# f(x) = X^2 - Number
def secant_sqrt(num):
return secant_method(num/2,num/4,lambda x: x**2-num)
secant_sqrt(3214.0)

Output:

537.0
324.277135397
205.916091836
132.004478363
89.9496774389
67.9769216068
59.0685940696
56.9032377885
56.6964766256
56.6921591697
56.692151132540069

Metode Regula-Falsi



def sign(x): # determines the sign of its argument
if x == abs(x) : return 1 # argument was positive or zero
else: return -1 # argument was negative

# Solve f = 0 on interval [x1,x2] by interpolation, with tolerances
def interpol_solve(f,x1,x2,ftol,xtol):
f1 = f(x1)
if abs(f1) <= ftol : return x1
s1 = sign(f1)
f2 = f(x2)
if abs(f2) <= ftol : return x2
s2 = sign(f2)
if s1 == s2 :
sys.stderr.write("Same sign at %g to %g - exit!\n" % (x1,x2))
sys.exit(1)
while abs(x2 - x1) > xtol :
x3 = x2 - f2*(x2 - x1)/(f2 - f1)
f3 = f(x3)
if abs(f3) <= ftol : break
s3 = sign(f3)
if s3 == s1 :
(x1,f1) = (x3,f3) # replace pair (x1,f1) by (x3,f3)
else :
(x2,f2) = (x3,f3) # replace pair (x2,f2) by (x3,f3)
return x3

def quad(x): # a simple test function with known zeroes
return (x - 5.0)*(x - 2.0)


# a simple main to test the regula falsi solver *
root = interpol_solve(quad,1.0,3.0,0.000001,0.000001)
print root




Metode Pencarian Akar

Untuk tugas Rekayasa Komputer kali ini, kami ditugaskan untuk mengubah algoritma dari metode Biseksi (Bagi Dua), Regula falsi , Newton Raphson, dan Secant ke dalam suatu aplikasi matematika tertentu. Aplikasi matematika yang dipakai oleh kelompok kami adalah SAGE.Dengan bahasa bawaannya adalah Pyhton, berikut Algoritma dari metode-metode tersebut:

Metode Pencarian Akar Dengan Python

Metode Bagi Dua



omega=1.5
z_0=1
def f(z): return abs(math.cos(omega*z))-z/z_0 #nilai absolut dari kosinus omega z kurang z/z_0
a=-2
b=1
err=0.00001
n=0
nmax=10000 
# Menentukan variabel-variabel float
dos = float(2); err = float(err)
# Sebelum ke algoritma kita mengevaluasi apakah perubahan fungsi mendaftar di ujung
if (f(a)*f(b)<0 data-blogger-escaped-data-blogger-escaped--="" data-blogger-escaped-data-blogger-escaped-2="" data-blogger-escaped-data-blogger-escaped-2x="" data-blogger-escaped-data-blogger-escaped-a="" data-blogger-escaped-data-blogger-escaped-abs="" data-blogger-escaped-data-blogger-escaped-akar=",c, " data-blogger-escaped-data-blogger-escaped-b="" data-blogger-escaped-data-blogger-escaped-c="(a+b)/dos" data-blogger-escaped-data-blogger-escaped-calculate="" data-blogger-escaped-data-blogger-escaped-carilah="" data-blogger-escaped-data-blogger-escaped-def="" data-blogger-escaped-data-blogger-escaped-default="" data-blogger-escaped-data-blogger-escaped-f="" data-blogger-escaped-data-blogger-escaped-fn="" data-blogger-escaped-data-blogger-escaped-fn_d="" data-blogger-escaped-data-blogger-escaped-if="" data-blogger-escaped-data-blogger-escaped-iterasi=",n
Output:
Akar= -0.5    Nilai= 1.23168886887      Iterasi= 0 (default)     Presisi= 1e-05
Akar= 0.60990524292     Nilai= -2.02227274149e-06      Iterasi= 17
# x1 = x - f(x)/f" data-blogger-escaped-data-blogger-escaped-kar=",c, " data-blogger-escaped-data-blogger-escaped-lambda="" data-blogger-escaped-data-blogger-escaped-n="" data-blogger-escaped-data-blogger-escaped-newthon_method="" data-blogger-escaped-data-blogger-escaped-newton_sqrt="" data-blogger-escaped-data-blogger-escaped-nilai=",f(c)," data-blogger-escaped-data-blogger-escaped-nmax="" data-blogger-escaped-data-blogger-escaped-num="" data-blogger-escaped-data-blogger-escaped-number="" data-blogger-escaped-data-blogger-escaped-of="" data-blogger-escaped-data-blogger-escaped-pertama="" data-blogger-escaped-data-blogger-escaped-pre="" data-blogger-escaped-data-blogger-escaped-precision:="" data-blogger-escaped-data-blogger-escaped-presisi=",err
while abs(f(c))>err: # kondisi mutlak bahwa f (root) lebih besar dari kesalahan (perhatikan nilai absolut)
if f(c)*f(a)<0: # kondisi ini mengembalikan berbagai baru dengan perubahan tanda 
b=c
else:
a=c
n=n+1 # iterasi memiliki
c=(a+b)/dos
print " data-blogger-escaped-data-blogger-escaped-print="" data-blogger-escaped-data-blogger-escaped-return="" data-blogger-escaped-data-blogger-escaped-sqrt="" data-blogger-escaped-data-blogger-escaped-square="" data-blogger-escaped-data-blogger-escaped-tengah="" data-blogger-escaped-data-blogger-escaped-the="" data-blogger-escaped-data-blogger-escaped-titik="" data-blogger-escaped-data-blogger-escaped-true:="" data-blogger-escaped-data-blogger-escaped-while="" data-blogger-escaped-data-blogger-escaped-x0="" data-blogger-escaped-data-blogger-escaped-x1="" data-blogger-escaped-data-blogger-escaped-x:="" data-blogger-escaped-data-blogger-escaped-x="">

Output:

804.5
404.247513984
206.099044271
110.846744125
69.9208659915
57.9435579501
56.7056644466
56.6921527424
56.692151132233484

Metode Secant



PRECISION = 0.00001
# x2 = x1 - ((x1-x0)/(fn(x1)-fn(x0)))*fn(x1)
def secant_method(x0,x1,fn):
while True:
x2 = x1 - ((x1-x0)/(fn(x1)-fn(x0)))*fn(x1)
if abs(x2 - x1) <= RECISION: return x2
x0 = x1
x1 = x2
print x2
# calculate the square sqrt of a number
# f(x) = X^2 - Number
def secant_sqrt(num):
return secant_method(num/2,num/4,lambda x: x**2-num)
secant_sqrt(3214.0)

Output:

537.0
324.277135397
205.916091836
132.004478363
89.9496774389
67.9769216068
59.0685940696
56.9032377885
56.6964766256
56.6921591697
56.692151132540069

Metode Regula-Falsi



def sign(x): # determines the sign of its argument
if x == abs(x) : return 1 # argument was positive or zero
else: return -1 # argument was negative

# Solve f = 0 on interval [x1,x2] by interpolation, with tolerances
def interpol_solve(f,x1,x2,ftol,xtol):
f1 = f(x1)
if abs(f1) <= ftol : return x1
s1 = sign(f1)
f2 = f(x2)
if abs(f2) <= ftol : return x2
s2 = sign(f2)
if s1 == s2 :
sys.stderr.write("Same sign at %g to %g - exit!\n" % (x1,x2))
sys.exit(1)
while abs(x2 - x1) > xtol :
x3 = x2 - f2*(x2 - x1)/(f2 - f1)
f3 = f(x3)
if abs(f3) <= ftol : break
s3 = sign(f3)
if s3 == s1 :
(x1,f1) = (x3,f3) # replace pair (x1,f1) by (x3,f3)
else :
(x2,f2) = (x3,f3) # replace pair (x2,f2) by (x3,f3)
return x3

def quad(x): # a simple test function with known zeroes
return (x - 5.0)*(x - 2.0)


# a simple main to test the regula falsi solver *
root = interpol_solve(quad,1.0,3.0,0.000001,0.000001)
print root



Metode Pencarian Akar Dengan Python| Contoh Program

Source CodeMetode Pencarian Akar Dengan Python

Source Code Tutorial belajar Gratis download Flow Chart PDF ZIP RAR DOC Java C# Visual Basic VB PHP Matlab C++ Penerapan implementasi metode algoritma pemrograman

Tutorial belajarMetode Pencarian Akar Dengan Python

VB PHP Matlab C++ Penerapan implementasi metode algoritma pemrograman Source Code Tutorial belajar Gratis download Flow Chart PDF ZIP RAR DOC Java C# Visual Basic

Gratis downloadMetode Pencarian Akar Dengan Python

Chart PDF ZIP RAR DOC Java C# Visual Basic VB PHP Matlab C++ Penerapan implementasi metode algoritma pemrograman Source Code Tutorial belajar Gratis download Flow

Penerapan implementasiMetode Pencarian Akar Dengan PythonMetode Pencarian Akar Dengan Python

Posted by: Metode-Algoritma.comMetode Pencarian Akar Dengan Python| Contoh ProgramUpdated at :







Konsultasi Gratis

Jika ada yang ingin di tanyakan, Kamu bisa melakukan konsultasi gratis kepada team metode-algoritma.com melalui form di bawah. Mohon isi email dengan benar, karena hasil konsultasi akan di kirimkan ke email kamu.


Metode Pencarian Akar Dengan Python| Contoh Program

Label:,,

Copyright © 2013 metode-algoritma.com Allright Reserved|about|sitemap|

Konsultasi gratis