Un servicio web gratuito para resolver sistemas a gran escala de ecuaciones no lineales (1 millón +) es APMonitor.com. Hay una interfaz de navegador y una API para Python/MATLAB. La API para Python es una secuencia de comandos única (apm.py) que está disponible para su descarga desde la página de inicio de apmonitor.com.Una vez que la secuencia de comandos se carga en un código Python, da la capacidad de resolver problemas de:
- ecuaciones no lineales
- diferencial y ecuaciones algebraicas
- mínimos cuadrados modelo apropiado
- Moving horizonte estimación
- Control predictivo modelo no lineal
- etc.
Para el nuevo usuario, el software APM Python tiene un foro de Grupos de Google donde un usuario puede publicar preguntas. Hay seminarios web bisemanales que muestran los problemas de optimización en la investigación e ingeniería de operaciones.
A continuación se muestra un ejemplo de un problema de optimización (hs71.apm).
Model
Variables
x[1] = 1, >=1, <=5
x[2] = 5, >=1, <=5
x[3] = 5, >=1, <=5
x[4] = 1, >=1, <=5
End Variables
Equations
x[1] * x[2] * x[3] * x[4] > 25
x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 = 40
minimize x[1] * x[4] * (x[1]+x[2]+x[3]) + x[3]
End Equations
End Model
El problema de optimización se resuelve con la siguiente secuencia de comandos de Python:
# Import
from apm import *
# Select server
server = 'http://xps.apmonitor.com'
# Application name
app = 'eqn'
# Clear previous application
apm(server,app,'clear all')
# Load model file
apm_load(server,app,'hs71.apm')
# Option to select solver (1=APOPT, 2=BPOPT, 3=IPOPT)
apm_option(server,app,'nlc.solver',3)
# Solve on APM server
solver_output = apm(server,app,'solve')
# Display solver output
print solver_output
# Retrieve results
results = apm_sol(server,app)
# Display results
print '--- Results of the Optimization Problem ---'
print results
# Display Results in Web Viewer
url = apm_var(server,app)
print "Opened Web Viewer: " + url
proyecto euler, yo también! –
¿Conoces el Maxima Language y la interfaz WxMaxima? Lo encuentro más acogedor que IPython – Foad