Conozco una forma, pero involucra variables simbólicas. Cuando tenga tiempo, haré un video sobre ese tipo de variables en Python y sus usos (en el canal hay varios videos sobre el uso de este tipo de variables, pero con MATLAB).
En este video encontrarás como solicitar la función, incluso esta es derivada por Python pero, como dije, requiere de variables simbólicas. ua-cam.com/video/lq02z1Xrlq8/v-deo.html
Significa que ya tienes una aproximación con la precisión deseada. Por ejemplo, si la tolerancia es 10^(-5) podemos decir que al menos ya tenemos 4 dígitos exactos en la aproximación de la raíz.
@@programmath ok gracias porque la verdad no logre poder entenderle mucho a penas empiezo con el tema de Python. El ejercicio es 1- crear un programa en Python para encontrar el area de un cuadrado(investigar cómo sacar raíz cuadrada) también podrías darme algún correo o número para comunicarme contigo te lo agradecería mucho saludos
No puedo dar información de contacto. Lo que sí puedo hacer es orientarte con la raíz cuadrada; la forma más directa es emplear la instrucción pow, que calcula potencias. En ella pow(x,3) significa x^3; si quieres raíz cuadrada usa pow(x, 0.5) Otra forma de hacerlo es con la instrucción sqrt de la librería math from math import * print(sqrt(5)) Eso te mostrará la raíz cuadrada de 5. Si prefieres hacer llamado de librería con prefijo, haz algo como esto import math as mt print(mt.sqrt(5)) Recuerda que al cargar librerías de esta forma debes anteponer el prefijo al comando (por eso se escribió mt.sqrt)
En el def f(x): después del return, escribir pow(log(x),2)-0.7 también es válido log(x)**2 - 0.7 Si la libreria math fue cargada mediante importh math, en ese caso el logaritmo se escribe math.log(x)
En los límites se debe poner dos valores que generen el cambio de signo al evaluar en la función. Mi consejo, tomar a=0 ya que al evaluar da negativo, -1 para ser específico; por otra parte, el término dominante es x^6 así que cualquier valor grande para x sirve, pero en este caso basta con b=2 para que al evaluar de positivo, de hecho daría 57.
@@programmath si podrías hacer un video seria de mucha ayuda ya que me salen errores: line 4, in f return (x**6)-3(x)-1; line 10, in biseccion if (f(a)*f(b)>0): line 25, in biseccion(0,0,2)
from math import* def f(x): return (x**6)-3(x)-1; def biseccion(a,b,tol): m1=a; m=b; k=0; if (f(a)*f(b)>0): print('La funcion no cambia de signo'); while(abs(m1-m)>tol): m1=m; m=(a+b)/2; if(f(a)*f(m)
Eso se debe a que el print que muestra los intervalos quedó fuera del while. Si quieres ver todos en lugar de solo el último, ingresa el print al while.
Parece que era un inconveniente con las sangrías de lo que va dentro del while. Por cierto, no necesitas el ; para indicar fin de línea en Python a veces se me escapan por la costumbre a C++ from math import * def f(x): return cos(x)-pow(x,3); def biseccion(a,b,tol): m1=a m=b k=0 if(f(a)*f(b)>0): print('La Funcion no cambia de signo'); while(abs(m1-m)>tol): m1=m; m=(a+b)/2; if(f(a)*f(m)
def f(x): return 4*x**2 - 5*x Para que el método de bisección funcione, debes iniciar con un intervalo en el cuál la función cambie de signo; por ejemplo [1, 2]
gracias por subir este video, me fue de mucha ayuda.
Gracias por el aporte, muy bien explicado.
Muchas gracias.
Gracias mi pibe, sos un crack
buena explicación !
Mucha gracias por tu comentario.
muy buen video, habrá una forma de solicitar la función al usuario?
Gracias !
Conozco una forma, pero involucra variables simbólicas. Cuando tenga tiempo, haré un video sobre ese tipo de variables en Python y sus usos (en el canal hay varios videos sobre el uso de este tipo de variables, pero con MATLAB).
En este video encontrarás como solicitar la función, incluso esta es derivada por Python pero, como dije, requiere de variables simbólicas.
ua-cam.com/video/lq02z1Xrlq8/v-deo.html
simplemente god
como instalo libreria en spyder?
No entiendo el tema del m1. Porque cuando m y m1 esten tan cerca (mas cerca que el error) el programa debe parar? que siginifica eso matematicamente?
Significa que ya tienes una aproximación con la precisión deseada. Por ejemplo, si la tolerancia es 10^(-5) podemos decir que al menos ya tenemos 4 dígitos exactos en la aproximación de la raíz.
Hola excelente video podrías ayudarme con algunos ejercicios que tengo a los cuales no le entiendo te lo agradecería mucho:)
Escríbeme uno por acá y te oriento en lo que me sea posible.
@@programmath ok gracias porque la verdad no logre poder entenderle mucho a penas empiezo con el tema de Python. El ejercicio es 1- crear un programa en Python para encontrar el area de un cuadrado(investigar cómo sacar raíz cuadrada) también podrías darme algún correo o número para comunicarme contigo te lo agradecería mucho saludos
No puedo dar información de contacto. Lo que sí puedo hacer es orientarte con la raíz cuadrada; la forma más directa es emplear la instrucción pow, que calcula potencias. En ella pow(x,3) significa x^3; si quieres raíz cuadrada usa pow(x, 0.5)
Otra forma de hacerlo es con la instrucción sqrt de la librería math
from math import *
print(sqrt(5))
Eso te mostrará la raíz cuadrada de 5.
Si prefieres hacer llamado de librería con prefijo, haz algo como esto
import math as mt
print(mt.sqrt(5))
Recuerda que al cargar librerías de esta forma debes anteponer el prefijo al comando (por eso se escribió mt.sqrt)
Hola tengo una consulta , como seria para un ln (×)^2=0.7
En el def f(x): después del return, escribir
pow(log(x),2)-0.7
también es válido log(x)**2 - 0.7
Si la libreria math fue cargada mediante importh math, en ese caso el logaritmo se escribe math.log(x)
como quedaria con la funcion x-sin(x)
from math import *
def f(x):
return x-sin(x);
como seria para 𝑥**6−3𝑥−1 ? y que pongo en los limites ?
En los límites se debe poner dos valores que generen el cambio de signo al evaluar en la función. Mi consejo, tomar a=0 ya que al evaluar da negativo, -1 para ser específico; por otra parte, el término dominante es x^6 así que cualquier valor grande para x sirve, pero en este caso basta con b=2 para que al evaluar de positivo, de hecho daría 57.
@@programmath si podrías hacer un video seria de mucha ayuda ya que me salen errores:
line 4, in f return (x**6)-3(x)-1;
line 10, in biseccion if (f(a)*f(b)>0):
line 25, in biseccion(0,0,2)
El error está en el 3x, debes escribir 3*x
from math import*
def f(x):
return (x**6)-3(x)-1;
def biseccion(a,b,tol):
m1=a;
m=b;
k=0;
if (f(a)*f(b)>0):
print('La funcion no cambia de signo');
while(abs(m1-m)>tol):
m1=m;
m=(a+b)/2;
if(f(a)*f(m)
En el def f(x) la función no se escribió adecuadamente, escríbelo así
return x**6-3*x-1
Gracias pa
De nada.
Al final solo me da un intervalo, ¿Cómo puedo arreglar eso?🤔
Eso se debe a que el print que muestra los intervalos quedó fuera del while. Si quieres ver todos en lugar de solo el último, ingresa el print al while.
@@programmath No es el último, me da solo el primero:(
Por favor, compárteme tu código para revisarlo
from math import *
def f(x):
#return sen(x)-pow(x,3);
#return cos(x)-pow(x,3);
#return (x**3 + 4*x**2-10);
return (x-2**(-x));
#return ((e**(3*x)) - 4);
def biseccion(a,b,error):
m1=a;
m=b;
k=0;
if(f(a)*f(b)>0):
print('La Funcion no cambia de signo');
while(abs(m1-m)>error):
m1=m;
m=(a+b)/2;
if(f(a)*f(m)
Parece que era un inconveniente con las sangrías de lo que va dentro del while. Por cierto, no necesitas el ; para indicar fin de línea en Python a veces se me escapan por la costumbre a C++
from math import *
def f(x):
return cos(x)-pow(x,3);
def biseccion(a,b,tol):
m1=a
m=b
k=0
if(f(a)*f(b)>0):
print('La Funcion no cambia de signo');
while(abs(m1-m)>tol):
m1=m;
m=(a+b)/2;
if(f(a)*f(m)
disculpa tal vez me puedes pasar tu contacto necesito comunicarme contigo
Si es 477
y para 4(x)**2-5(x)?¿
def f(x):
return 4*x**2 - 5*x
Para que el método de bisección funcione, debes iniciar con un intervalo en el cuál la función cambie de signo; por ejemplo [1, 2]
a dejame adivinar, programas en JAVA, en python no va los ; al final,casi me sorprende jaja :v
En C++ y Matlab, los ; ya son fuerza de costumbre.