ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Metodo De Steffensen


Enviado por   •  23 de Septiembre de 2014  •  325 Palabras (2 Páginas)  •  637 Visitas

Página 1 de 2

#! /usr/bin/env python

#-*- coding: utf-8 -*-

# Autor: Dolores GarcíaKarla Rubí

# Metodo: Steffensen

print '\t************** Metodo de Steffenson ***************\n'

import numpy as np

import matplotlib.pyplot as plt

from math import *

from sympy import *

iInicial = float(raw_input("Introduce el intervalo inicial: "))

iFinal = float(raw_input("Introduce el intervalo final: "))

x = np.linspace(iInicial, iFinal,500)

fx = input("Introduce una funcion donde x es la variable independiente: ")

plt.xlabel('x')

plt.ylabel('y')

plt.title('Polinomio')

plt.plot(x, fx, 'g.')

plt.show()

#.....Graficamos f(x) para ver los puntos que estan cerca de la raiz

funintroducida = str(raw_input('\n Función f(x): '))

fnx = 'def function(x): \n' + ' return ' + funintroducida

exec fnx #La función exec le dice al intérprete que haga una llamada a si mismo y ejecute el contenido de la cadena pasada como argumento.

#.....Damos la tolerancia

tolerancia = float(raw_input('\n Tolerancia: '))

while tolerancia>=1 or tolerancia<0:

tolerancia = float(raw_input('Tolerancia: '))

#.....Introduzco g(x)

x = Symbol('x')

gx = str(raw_input('\n Función g(x) para derivar y probar el TPF: '))

fgx = 'def functiong(x): \n' + ' return ' + gx

exec fgx

#.....Damos un punto inicial cerca de la raiz y checamos el Teorema de punto fijo(segunda condición)

xi = float(raw_input("\n Punto inicial: "))

def derivada(xi):

deri = diff(gx, x)

deriEvaluada = deri.evalf(subs={x:xi})

return deriEvaluada

print "\n Derivada evaluada en el punto inicial: " , derivada(xi)

#if abs(derivada(pInicial))>=1:

# print 'Corrige la g(x) pues la que diste no cumple el Teorema de punto fijo'

# break

#.....Verificado lo anterior comenzamos con las iteraciones

punto,itera = 10.0,0

gx = input('\n De nuevo escribe la función g(x) para evaluarla en los puntos dados: ') #Hay q escribirla bien :S si (x+1)**(1/3.0)

def y():

y= gx.evalf(subs={x:xi})

return y

def z():

z= gx.evalf(subs={x:y0})

return z

cuenta = 0

print '{0}\t{1}\t{2}\t{3}\t{4}'.format('Iteracion','xi ','yi ','zi ','Xi+1 ', 'Error abs ')

while (abs(xi-punto)

...

Descargar como (para miembros actualizados)  txt (3 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com