Naufraghi nella Rete

import math

def f(x):
    
return x**2 - 3 * math.cos(1/x)

def df(x):
    
return 2*x - 3 * math.sin(1/x) / x**2

def bisezione(f, a, b):
    
for i in range(10):
        
x = (a + b)/2
        
sign = f(x)*f(a)
        
if sign < 0:
            
b = x
        
elif sign > 0:
            
a = x
        
else:
            
print x, f(x)
            
return x
        
print x, f(x)
    
return x

def regula_falsi(f, a, b):
    
for i in range(10):
        
x = a - f(a) * (a - b)/(f(a) - f(b))
        
sign = f(a)*f(x)
        
if sign < 0:
            
b = x
        
elif sign > 0:
            
a = x
        
else:
            
print x, f(x)
            
return x
        
print x, f(x)
    
return x
        
def corde(f, a, b):
    
m = (f(a) - f(b))/(a - b)
    
for i in range(10):
        
x = a - f(a)/m
        
sign = f(a)*f(x)
        
if sign < 0:
            
b = x
        
elif sign > 0:
            
a = x
        
else:
            
print x, f(x)
            
return x
        
print x, f(x)
    
return x
        
def secanti(f, a, b):
    
for i in range(10):
        
if f(a) == 0:
            
break
        
x = a - f(a) * (a - b)/(f(a) - f(b))
        
a = b
        
b = x
        
print a, f(a)
    
return a

def deriva(f, x0):
    
x1 = x0 - 1e-9
    
df = (f(x0) - f(x1))/(x0 - x1)
    
return df

def newton(f, df, a, b):
    
for i in range(10):
        
x = a - f(a)/df(a)
        
sign = f(a)*f(x)
        
if sign < 0:
            
b = x
        
elif sign > 0:
            
a = x
        
else:
            
print x, f(x)
            
return x
        
print x, f(x)
    
return x
 
"""
print "Bisezione"
bisezione(f, 0.1, 1.)

print "Regula Falsi"
regula_falsi(f, 0.1, 1.)

print "Corde"
corde(f, 1., 0.1)

print "Secanti"
secanti(f, 0.1, 1.)
"""

print "Newton"
newton(f, df, 0.4, 1.)

Ultima modifica 08/03/2004
Per ogni suggerimento/errore contattatemi liberamente: Matteo Bertini

Creative Commons License
This work is licensed under a Creative Commons License.
Nota: I link esterni sono in corsivo e aprono una nuova pagina.


Naufraghi nella rete - PHP - Informatica - Linux - Blog - Appartamento a Firenze - Gruppo di discussione