Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
import numpy as np import math as mt def bisection(func, a, b, tolerance=1e-7, max_iterations=100): """ Encuentra una raíz de la función 'func' en el intervalo [a, b] usando el método de bisección. Parametros: tolerance (float, opcional): La tolerancia para la raíz encontrada. Defaults to 1e-7. max_iterations (int, opcional): El número máximo de iteraciones. Defaults to 100. Retorna: Una aproximación de la raíz si se encuentra dentro de la tolerancia y el número máximo de iteraciones, de lo contrario devuelve None. """ if np.sign(func(a)) == np.sign(func(b)): raise ValueError("La función debe tener signos opuestos en los extremos del intervalo.") itr = 0 for i in range(max_iterations): c = (a + b) / 2 itr = i + 1 if np.abs(func(c)) < tolerance: return c, itr elif np.sign(func(c)) == np.sign(func(a)): a = c else: b = c print(f"Advertencia: Número máximo de iteraciones alcanzado sin la tolerancia deseada. Última aproximación: {c}") return c, itr # Ejemplo de uso: encontrar una raíz de la función f(x) = x^2 - 4 def f(x): return x**3 - 2*x - 5 # Definimos el intervalo inicial donde sabemos que hay una raíz (por ejemplo, entre 1 y 3) intervalo_a = 1 intervalo_b = 3 # Llamamos a la función bisection raiz, itr = bisection(f, intervalo_a, intervalo_b) if raiz is not None: print(f"Se encontró una raíz aproximada en: {itr} iteraciones") print(f"El valor de la función en la raíz es: {raiz:.6f}")
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)