Escolar Documentos
Profissional Documentos
Cultura Documentos
Passeio aleatrio
Anlise: diculdade: saber se se saiu da janela soluo: diferir, encapsulando numa funo
Alguns algoritmos
Verso 1
(verso simplista de isInScreen: 90% de probabilidade de a tartaruga estar na janela)
import random import turtle def isInScreen(w,t): if random.random() > 0.1: return True else: return False wn = turtle.Screen() t = turtle.Turtle() t.shape(turtle) while isInScreen(wn,t): coin = random.randrange(0,2) if coin == 0: # heads t.left(90) else: # tails t.right(90) t.forward(50) wn.exitonclick()
Joo Pedro PEDROSO Introduo Programao - minor
Alguns algoritmos
isInScreen corrigido
def isInScreen(w,t): leftBound = - w.window_width()/2 rightBound = w.window_width()/2 topBound = w.window_height()/2 bottomBound = -w.window_height()/2 turtleX = t.xcor() turtleY = t.ycor() stillIn = True if turtleX > rightBound or turtleX < leftBound: stillIn = False if turtleY > topBound or turtleY < bottomBound: stillIn = False return stillIn
Alguns algoritmos
simplica o cdigo no restante programa (relativamente a ter uma condio complexa no while); isInScreen pode ser utilizada noutros contextos; ao reutilizar esta funo, temos mais conana de que est correta (j foi testada); este um exemplo da decomposio funcional: diviso de um programa em partes.
Alguns algoritmos
Mtodo de Newton
Mtodo de Newton (ou de Newton-Raphson): permite encontrar razes de funes reais de varivel real, por aproximaes sucessivas; raz: ponto onde a funo igual a zero, x : f (x ) = 0 aproximaes sucessivas: encontramos sequncias de valores que (se a funo for bem comportada) tendem para o zero; o mtodo termina quando a aproximao sucientemente boa.
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
Alguns algoritmos
Mtodo de Newton
O processo repetido at que a aproximao seja sucientemente precisa, i.e.: |f (xn )| <
Alguns algoritmos
Mtodo de Newton
Mtodo de Newton: Python
def newton(f,d,x0,eps): f0 = f(x0) d0 = d(x0) while abs(f0) > eps: x0 = x0 - f0/d0 f0 = f(x0) d0 = d(x0) return x0 if __name__ == "__main__": import math def f(x): return math.sin(x) def d(x): return math.cos(x) x0 = 3. root = newton(f,d,x0,1.e-12) print("solution:", root)
Alguns algoritmos
Mtodo de Newton
Mtodo de Newton: Python
def newton(f,d,x0,eps): f0 = f(x0) d0 = d(x0) while abs(f0) > eps: x0 = x0 - f0/d0 f0 = f(x0) d0 = d(x0) return x0 if __name__ == "__main__": import math def f(x): return math.sin(x) def d(x): return math.cos(x) x0 = 3. root = newton(f,d,x0,1.e-12) print("solution:", root)
Alguns algoritmos
Prxima aula
Algoritmos