Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %Polinomio de interpolaci�n de Lagrange paracaidista...
- %Lagrange 544 pdf;
- format short
- evaluado_en = 10;
- grados = [1:4];
- datos_x = [1 3 5 7 13];
- datos_y = [800 2310 3090 3940 4755];
- n = length(datos_x);
- evals = datos_y;
- equs = string.empty(0,length(grados));
- for x=1:length(grados)
- g = x+1;
- vals = lagrange(g, datos_x, evals);
- equs(x) = strcat("@(x) ", vals);
- fplot(matlabFunction(str2sym(vals)), [1,datos_x(end)], '--*');
- hold on
- disp(strcat('La ecuaci�n de grado ', " ", string(g), " es: ", vals));
- end
- for i=1:length(equs)
- fx = str2func(equs(i));
- disp(strcat("X evaluado en ",string(evaluado_en)," con la ecuaci�n de grado ", string(i+1), " es: ", string(fx(evaluado_en))));
- end
- plot(datos_x, datos_y, 'r--X');
- legend(equs, 'Location','southwest')
- hold off
- function vals = lagrange(grado, puntos, evals)
- vals = "";
- for i=1:grado
- denominador = "";
- numerador = "";
- for j=1:grado
- if i~=j
- numerador = strcat(numerador, "(x-", string(puntos(j)), ")*");
- denominador = strcat(denominador, "(", string(puntos(i)), "-", string(puntos(j)), ")*");
- end
- end
- if length(string(numerador)) && length(string(denominador))
- vals = strcat(vals, "(",numerador, "*", string(evals(i)),")/(",denominador,")");
- vals = strrep(vals, "**", "*");
- vals = strrep(vals, "*)", ")");
- if i ~= grado
- vals = strcat(vals, "+");
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement