Cómo escribir código para el algoritmo Marquardt

Escrito por gissimee doe | Traducido por beatriz sánchez
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Cómo escribir código para el algoritmo Marquardt
"MatLab," o Matrix Laboratory, es una aplicación de software matemático. (Hemera Technologies/AbleStock.com/Getty Images)

El algoritmo Levenberg-Marquardt es un método usado en ciencias de computadoras y matemáticas para encontrar el mínimo loca de una función expresada como la suma de mínimos cuadrados de funciones no lineales. Se suele usar para resolver problemas de regresión lineal y encontrar el mínimo de funciones que pueden representarse como la suma de mínimos cuadrados, así como un optimizador de funciones que no se puede descomponer en mínimos cuadrados. El algoritmo es interactivo, lo que quiere decir que se repite hasta que se cumple una determinada condición, que se toma como la solución óptima. Puedes escribir código para un algoritmo Levenberg-Marquardt usando funciones en MatLab, o usando funciones mostradas en soluciones escritas en Fortran y C++.

Nivel de dificultad:
Difícil

Otras personas están leyendo

Necesitarás

  • MatLab
  • Un editor C++
  • Una computadora

Lista completaMinimizar

Instrucciones

  1. 1

    Ejecuta la aplicación "MatLab". "MatLab," o Matrix Laboratory, es una aplicación de software matemático que es especialmente útil para resolver ecuaciones de mínimos cuadrados. Sirve como lenguaje de programación para aplicaciones matemáticas y tiene funciones que están especialmente diseñadas para el algoritmo Levenberg-Marquardt.

  2. 2

    Escribe el código que usarás con la función lsqnonlin en "MatLab" para resolver problemas de mínimos cuadrados no lineales usando el algoritmo Levenberg-Marquardt. Según la documentación de MathWorks, la sintaxis es: x = lsqnonlin(fun,x0)

    La función empieza en el punto "x0" y encuentra el mínimo de la suma de cuadrados de funciones descritas en "fun". Para usar esta función específicamente con el algoritmo Levenberg-Marquardt, usa la opción "ScaleProblem" en la definición de función.

  3. 3

    Escribe el código para usar la función fsolve en "MatLab" para resolver sistemas de ecuaciones no lineales usando el algoritmo Levenberg-Marquardt. Según la documentación de MathWorks, la sintaxis es:

    x = fsolve(fun,x0) x = fsolve(fun,x0,options)

    La función encuentra una raíz (cero) de un sistema de ecuaciones no lineales empezando en un punto, x0, e intentando resolver los problemas en la función "fun". Para usar esta función específicamente con el algoritmo Levenberg-Marquardt, usa la opción ScaleProblem en la definición de función.

  4. 4

    Ejecuta el editor de C++ y úsalo para escribir el código a usar con las funciones Levmar para resolver problemas lineales y no lineales usando el algoritmo Levenberg-Marquardt. Las funciones Levmar están disponibles de forma gratuita bajo la Licencia Pública General de GNU y se han desarrollado para ser compatibles con "MatLab" y varios lenguajes de programación habituales. Las funciones Levmar están escritas en C++ y exponen las funciones y el código para su optimización forzosa y no forzosa. Puedes modificar el código para que se ajuste a tus necesidades y personalizarlo para que se ajuste a tu implementación del algoritmo Levenberg-Marquardt.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles