Mathematica cuenta con comandos que facilitan el ajuste de curvas a diferentes tipos de modelos, por diferentes métodos. Comandos tales como:
Fit, FindFit, LeastSquares, Interpolation, InterpolationPoints, LinearModelFit
entre muchos otros. Pero aquí, realizaré un ejercicio para mostrar el manejo de las listas realizando una regresión lineal por mínimos cuadrados.
(*Regresión Lineal*)
Clear[li, xx, xi, xf, ca, m, b];
numero = Input["número de puntos"];
li = Table[{Input[x[i]], Input[y[i]]}, {i, 1, numero, 1}];
xx = Sort@Table[li[[i, 1]], {i, 1, numero, 1}];
xi = First[xx]; xf = Last[xx];
ca = Minimize[
Sum[(m li[[j, 1]] + b - li[[j, 2]])^2, {j, 1, numero}], {m, b}]
Show[ListPlot[li],
Plot[(m /. ca[[2, 1]]) x + (b /. ca[[2, 2]]), {x, xi, xf}],
PlotLabel -> y == (m /. ca[[2, 1]]) x + (b /. ca[[2, 2]])]
Este ejemplo corresponde a cuatro puntos (0,3), (3,5), (5,7) y (8,9)
El resultado nos muestra: la gráfica de los puntos y a recta que mejor los aproxima, junto con su ecuación.
Estimado Alvaro, creo para el ejemplo, el modelo lineal debería ser: y=13/17x+50/17. Hice correr tu programa en el Mathematica,con lo cuatro puntos dados: (0,3), (3,5), (5,7) y (8,9).
ResponderBorrarAtte
Dante