NEWTON RAHPSON

TEORÍA
 el método newton rahpson se utiliza para hallar la raíz de una función algebraica o trascendental
.para este caso solo calcula una raíz si la función es un polinomio ,según el valor de inicial que se da para la convergencia 

ERROR APROXIMADO RELATIVO PORCENTUAL

su formula es la siguiente 

la calculo  terminan si el error estimado "es" es mayor que el error aproximado relativo porcentual "ea"
donde:
ea<es


FORMULA DE NEWTON RAHPSON

f(x) : funcion de x
f'(x) : primera dervidad de f(x)

aqui xi es el valor inial que se da ,segun sea el valor incial puede converger mas rapido

xi+1 es el valor nuevo 

PROCESO DE CALCULO

1 calculemos la derivada de f(x)

2 expresemos xi+1 como g(x)

3 g(x) es la funcion g con variable x

4 se da un valor a xi  en g(x) 

5 se obtiene el valor numérico de g(x)= xi+1

6 hallemos el error aproximado relativo porcentual"ea"

7 si el ea>es reemplazamos xi por xi+1 obtendremos otro valor para xi+1

8 el calculo termina si ea<es


CODIGO


#programa: newton rhapson
#funcion: calcular la raiz de funciones trascendentes o algebraicas 
import sympy as sy
#x es un simbolo
x=sy.symbols('x')
#funcion 
funcion=sy.exp(-x)-x
#primera derivada de la funcion
derivada=sy.diff(funcion,x)
#varibles
#xo valor inicial para la convergencia
x_0=0
xr=x_0
#error aproximado relatico porcentual
ea=100/100
#error estimado
es=0.001/100
contador=-1
print("i\txi\tea%")
while ea>es:
    xra=xr
    contador+=1
    newton_rhapson=x-(funcion/derivada)
    #se subtituye x por xr a continuandicon se evalua
    xr=newton_rhapson.evalf(subs={x: xr})
    #error aproximado relativo porcentual
    ea=sy.Abs(((xr-xra)/xr)*100)
    #resultado
    print(contador,"\t",xra,"\t",ea)

SE OBTIENE LA SALIDA
i                 xi                                          ea%
0        0                                      100.000000000000
1        0.500000000000000       11.7092909766624
2        0.566311003197218       0.146728707837439
3        0.567143165034862       2.21063919843976e-5
4        0.567143290409781       4.89392647060576e-13






FUNCIÓN SENO CON TURTLE




EXPLICACIÓN DEL CÓDIGO

1,2  Se importa los módulos turtle y math

 Se crea la pantalla(Screen()) y se almacena en la variables pantalla

5  El método setup(825,425) fija el ancho y el alto de la ventana en

6  El método screensize(800,400) fija el ancho y el alto del área de dibujo

7  El método setworldcoordinates(x1,y1,x2,y2) establece el sistema de coordenadas de la pantalla
       
9  Se crea la tortuga(Turtle()) y se almacena en la variable tortuga

11  El valor de -2*pi se almacena en la variable x

12  La variable paso es el ancho del area de dibujo(800) el cual divide el dominio de la función(4*pi)
     esto hace q la función se mas suave es decir tenga 800 puntos de ancho

13  El método penup() levanta el lápiz

14  El método goto(x,sin(x)) ubica la tortuga en la posición (x, sin(x))

15  El método pendown() baja el lápiz

17  El bucle (while con la condición que x sea menor o igual q 2*pi)

18  Si se cumple la condición se ubicara en la posición con el método goto(x,sin(x))

19  Se asigna un nuevo valor a la variable x el cual es el valor de la expresión  x +paso

21  el método exitonclick() espera que el usuario haga clic en la pantalla

Resultado:



Código:










Widget Button

Esta diseñado para que el usuario interactúe con la interfaz , si se presiona el botón con un clic del mouse
Una función o método de Python puede asociarse con un botón. Esta función o método se ejecutara si se presiona el botón


w_boton= tk.Button ( parent, option= value, ...)

import tkinter as tk

def mostrar_texto():

    print("Aprendo Tkinter")
 
root=tk.Tk()

cuadro=tk.Frame(root)

cuadro.pack()

w_boton=tk.Button(cuadro,text="QUIT",fg="red",command=quit)

w_boton.pack(side=tk.LEFT)

w_hola=tk.Button(cuadro,text="Hola",fg="blue",command=mostrar_texto())

w_hola.pack(side=tk.LEFT)

root.mainloop()

interfaz con botones quit y hola ,al hacer clic en quit se sale de la interfaz y en hola se ejecuta la funcion que muestra el texto aprendo tkinter


opciones del widget Button

text
Texto que se muestra en el botón
fg
Color del texto
bg
Color de fondo del botón
command
Función o método a llamar cuando se hace clic en el botón


WIDGET Label


El widget Label puede mostrar texto o imagen

widget_texto= Tk.Label ( parent, option, ...)

import tkinter as tk
root=tk.Tk()
imagen=tk.PhotoImage(file="kid.gif")
w_imagen=tk.Label(root,image=imagen).pack(side="right")
texto="""
Originalmente se creía que esta entidad fue una creación del hechicero
Bibidi 5 millones de años antes del año cero de la Cronología de Dragon Ball;
sin embargo, Bills menciona en el manga que ha existido desde mucho antes como una
fuerza primordial y solo que fue despertado por Bibidi, quien podía usar su magia
para liberarlo y encerrarlo.
Su cuerpo es un compuesto de células y bioquímicos desconocidos que mezclados
con mucha energía lo hacían un individuo prácticamente indestructible y le
otorgan habilidades varias, entre ellas regenerar o volver a unir las partes de
su cuerpo que pierda durante el combate
"""
w_texto=tk.Label(root,text=texto,justify=tk.LEFT,padx=10).pack(side="left")
root.mainloop()
 al ejecutar el programa se muestra



opciones o parámetros del widget Label
bg o background
El color de fondo del área de widget Label
font
especifica en qué fuente se mostrará ese texto
fg o foreground
Color del texto
justify
Especifica cómo se alinearán varias líneas de texto entre sí: tk.LEFT para alineado a la izquierda, tk.CENTER centrado (predeterminado) o tk.RIGHT  justificado a la derecha.
image
Para mostrar una imagen estática en el widget Label


Primeros pasos con Tkinter



El modulo Tkinter(interfaz tk) es la interfaz estándar de Python
Tk se encuentra disponible para varios lenguajes de programación en Python se llama tkinter
Para utilizar Tkinter , todo lo que necesita es importar el modulo Tkinter
from Tkinter import *
o
import Tkinter
import Tkinter as Tk
Empezemos con el ejemplo “Hello Tkinter”
import tkinter as tk
root=tk.Tk()
texto=tk.Label(ventana,text=”Hola Tkinter”)
texto.pack()
root.mainloop()
al ejecutar el script se muestra la ventana



Para inicializar tkinter, tenemos que crear un widget root Tk, que es una ventana con una barra de título y otra decoración proporcionada por el administrador de ventanas. El widget root debe crearse antes que cualquier otro widget y solo puede haber un widget root
ventana=tk.Tk()
creamos el widget Label como elemento secundario en la ventana root
un widget  Label puede mostrar texto o una imagen
texto = tk.Label (root, texto = "Hola Tkinter")
el primer parámetro es el nombre de la ventana principal en nuestro caso “root” ,nuestro widget Label es hijo del widget root
el segundo parámetro text especifica el texto q se mostrara
el método pack()  le dice que ajuste el tamañop de la ventana al texto dado

texto.pack()
la ventana no aparecerá hasta q ingresemos al ciclo de eventos de Tkinter

root.mainloop()

el programa permanecerá en el ciclo de eventos hasta que cerremos la ventana.

continuacion ---->>>


 conocer el numero total de elememtos de una matriz

 >>> a=np.array([1,2,3,4])
 >>> a
array([1, 2, 3, 4])
 >>> a.size
4
 >>> b=np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> b
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

 >>> b.size
9



SOBRE LA CREACIÓN DE MATRICES

Si deseamos crear una matriz nula:

creamos un vector con 10 datos (matriz unidimensional)
>>> a=np.zeros(10)
>>> a
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

matriz de dos dimensiones:

creamos una matris de 5x5
>>> b=np.zeros([5,5])
>>> b
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]])

matriz identidad

>>> c=np.identity(4)
>>> c
array([[ 1.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  1.]])





utilizar numpy para ello importamos:

>>> import numpy as np

1: importamos numpy y renombrado como np

creamos nuestro primer array o arreglo(matriz)

matriz unidimensional
>>> a=np.array([1,2,3,4,5]) 

>>>a 
array([1, 2, 3, 4, 5])

np.arange()

>>>b=np.arange(1,8,2) 
>>>b 
 array([1, 3, 5, 7])

np.linspace()

>>> C=np.linspace(0,15,30)
>>> C
array([  0.        ,   0.51724138,   1.03448276,   1.55172414,
         2.06896552,   2.5862069 ,   3.10344828,   3.62068966,
         4.13793103,   4.65517241,   5.17241379,   5.68965517,
         6.20689655,   6.72413793,   7.24137931,   7.75862069,
         8.27586207,   8.79310345,   9.31034483,   9.82758621,
        10.34482759,  10.86206897,  11.37931034,  11.89655172,
        12.4137931 ,  12.93103448,  13.44827586,  13.96551724,
        14.48275862,  15.        ])


matriz de dos dimensiones
>>>m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])   
>>>m
 array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])


 visualizar el dato en la posición (indexar)


  • de una dimensión



>>> a=np.array([1,2,3,4])

Los componentes de las matrices pueden ser manipulados con índices, igual que las listas
 >>> a[2]
3

  • de dos dimensiones



 >>> M = np.array([[1, 2, 3], [2, 12, 6], [1, 0, -3],[0,-1,0]])
 >>> M
array([[ 1,  2,  3],
       [ 2, 12,  6],
       [ 1,  0, -3],
       [ 0, -1,  0]])


Se puede especificar el tipo
 >>> M = np.array([[1, 2, 3], [2, 12, 6], [1, 0, -3],[0,-1,0]],float)
>>M
 array([[  1.,   2.,   3.],
       [  2.,  12.,   6.],
       [  1.,   0.,  -3.],
       [  0.,  -1.,   0.]])


Los componentes de las matrices pueden ser manipulados con índices, igual que las listas
 >>> M[0][1]
2

Los arreglos admiten también la notación de índices separados por comas. Las listas no.
>>> M[0,1]
2
obtener la fila 1

operador de recorte

 el operador de recorte se denota con dos puntos : que separan dos indices de dentro de los corchetes del operador de idexacion [] la expresion a[i:j] significa que se desea obtener la matris formado por los datos a[i] ,a[i+1],a[i+2],....a[j-1]

 >>> M = np.array([[1, 2, 3], [2, 12, 6], [1, 0, -3],[0,-1,0]],float)
>>> M
array([[  1.,   2.,   3.],
       [  2.,  12.,   6.],
       [  1.,   0.,  -3.],
       [  0.,  -1.,   0.]])

 >>> M[1:4]
array([[  2.,  12.,   6.],
       [  1.,   0.,  -3.],
       [  0.,  -1.,   0.]])

 >>> M[1:]                                              
array([[  2.,  12.,   6.],
       [  1.,   0.,  -3.],
       [  0.,  -1.,   0.]])

 Obtener la fila 1

>>> M[1,:]
array([  2.,  12.,   6.])

OBTENER LA COLUMNA 1
 >>> M[:,1]
array([  2.,  12.,   0.,  -1.])

conocer las dimensiones de una matriz nxm
>>> [n,m]=M.shape
>>> n
4
>>> m
3

>>>M.shape
(4,3) → continuación
 

Know us

Our Team

Contact us

Nombre

Correo electrónico *

Mensaje *