Erro no Algoritmo

1. Erro no Algoritmo

Henrique Matheus Silva Arouca
henriquechanry28

(usa elementary OS)

Enviado em 13/11/2016 - 16:17h

Olá pessoal sou novato em python, estou com erro nesse algortimo que parece não estar chamando a função secante de calculo numérico podem me ajuda no erro obrigado.

segue a seguir o algoritmo

#!/usr/bin/python
# - *- coding: utf- 8 - *-

import sys
from array import array
import math

class Polinomio(object):
def __init__(self):
self.polino = None
self.iterMAx = 0
self.l = 0
self.u = 0
self.e = 0
self.n = 0
self.a = [0 * 5]

def Secante (poli1,a,b,toler,maxIter):
pass

def main():
polinom = Polinomio()

polinom.polino = 'P(x) = 6x^4 + 3x^2 -0.5x -15'
polinom.iterMAx = 50
polinom.l = 1.0
polinom.u = 1.5
polinom.e = 0.001
polinom.n = 4

polinom.a.append(6.0)
polinom.a.append(3.0)
polinom.a.append(-0.5)
polinom.a.append(-15.0)

Secante(polinom, polinom.l, polinom.u, polinom.e, polinom.iterMAx)

if __name__ == "__main__":
main()


def Horner (poli1,n):

y = poli1.a[0]

for i in range(1,n):
y = y * a + poli1.a[i]

return y

def Secante (poli1,a,b,toler,maxIter):

itera = 0
fa = Horner(poli1,a)
fb = Horner(poli1,b)

if(abs(fa) < abs(fb)):
a,b = b,a #swap entre as variaveis a e b
fa,fb = fb,fa #Swap entre as funçoes fa e fb

x = b
fx = Horner(poli1,x)

delta = -(fx / (fa - fa)) * (b-a)
x += delta

file = open("secante.html","w")

file.append('<html>')
file.append(' <meta charset=utf-8>')
file.append(' <head>')
file.append(' <title>Trabalho 2.1 Desenvolvimento Ráído para Linux</title>')
file.append('<br><br>')
file.append(' <head>')
file.append(' <body>')
file.append(' Polinômio: '+poli1.polino)

file.append(' <br><i>Método de Secante</i><br><br>')

file.append(' <table border=1 width= 50% height=50% >')
file.append(' <th>Iter</th> <th>a</th> <th>f(a)</th> <th>b</th> <th>f(b)</th> <th>x</th> <th>f(x)</th> <th>Delta</th>')
file.append(' <tr><td>'+itera+'</td> <td>'+a+'</td> <td>'+fa+'</td> <td>'+b+'</td> <td>'+fb+'</td> <td>'+x+'</td> <td>'+fx+'</td> <td>'+delta+'</td></tr>')

a = b
b = x
itera += 1

while((abs(delta)>Toler) and (abs(fx)>Toler)):

fx = Horner(poli1,x)
fa = Horner(poli1,a)
fb = Horner(poli1,b)

delta = -(fx / (fa - fa)) * (b-a)
x += delta

file.append(' <tr><td>'+itera+'</td> <td>'+a+'</td> <td>'+fa+'</td> <td>'+b+'</td> <td>'+fb+'</td> <td>'+x+'</td> <td>'+fx+'</td> <td>'+delta+'</td></tr>')

a = b
b = x
itera += 1

if(itera >= maxIter):

file.append('<br>')
file.append('Erro de cáculo, ultrapassou o número de iterações máxima')
file.append('<br>')
break;

file.append('</body>')
file.append('</html>')

file.close()

return 0


  


2. Re: Erro no Algoritmo

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/11/2016 - 03:16h

Seria bom colocar o código entre [ code ] e [ /code ] porque Python depende de indentação e assim fica osso de ler.

#!/usr/bin/env python3

def foo(bar):
return 2*bar

foo(2)


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Duvida

Henrique Matheus Silva Arouca
henriquechanry28

(usa elementary OS)

Enviado em 14/11/2016 - 10:49h

Sim entendo, mas e se eu quiser passar um objeto no parâmetro? como eu faço, obrigado pela ajuda






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts