Professional Documents
Culture Documents
1. Polinomios de Taylor
clc
clear
close all
format long
% Polinomios
a = 1;
syms x
p2 = Pol(2,a)
p2 =
p5 = Pol(5,a)
p5 =
1
p8 = Pol(8,a)
p8 =
p15 = Pol(15,a)
p15 =
2. Gráficas
figure(1)
hold on
grid on
title('Aproximación vs. Función')
xlabel('x')
ylabel('f(x)')
xlim([0 2.5])
ylim([0 1])
fplot(log(x)) % Función base
fplot(p2, 'r')
fplot(p5, 'g')
fplot(p8, 'k')
fplot(p15, 'r--')
legend({'Función Base', 'P2(x)', 'P5(x)', 'P8(x)', 'P15(x)'}, 'Location','southeast','O
whitebg('w')
hold off
legend("Position",[0.2097,0.61038,0.34851,0.29348])
2
3. Errores Absolutos
M = zeros(4,3);
x = 2;
yRef = log(x);
disp(['Valor de Referencia: ', num2str(yRef)]);
M(:,1) = [2,5,8,15];
M(:,2) = [eval(p2),eval(p5),eval(p8),eval(p15)];
M(:,3) = [EA(M(1,2),yRef), EA(M(2,2),yRef), EA(M(3,2),yRef), EA(M(4,2),yRef)];
T = 4×3 table
Grado del Polinomio Polinomio Evaluado Error Absoluto
1 2 0.500000000000000 0.193147180559945
2 5 0.783333333333333 0.090186152773388
3 8 0.634523809523809 0.058623371036136
4 15 0.725371850371850 0.032224669811905
figure(2)
hold on
grid on
title('Error absoluto')
xlabel('Grado del Polinomio')
ylabel('Error')
plot(M(:,1), M(:,3), 'r') % Función base
legend({'Error'}, 'Location','northeast','Orientation','vertical')
hold off
figure(3)
3
hold on
grid on
title('Aproximación')
xlabel('Grado del Polinomio')
ylabel('Valor aproximado')
plot(M(:,1), M(:,2), 'r') % Función base
legend({'Aproximación'}, 'Location','northeast','Orientation','vertical')
hold off
4. Resto de Taylor
fRES = RES(a,x,4)
fRES =
yRefPol = M(4,2);
figure(4)
hold on
grid on
title('Resto de Taylor')
xlabel('Gamma')
ylabel('Resto')
xlim([a x])
fplot(fRES,'r') % Función base
legend({'Aproximación'}, 'Location','northeast','Orientation','vertical')
hold off
4
y = log(2); % Gamma que maximiza
RESIDUO = eval(fRES)
RESIDUO =
1.249978924127694
yUP =
1.975350774499544
yRef
yRef =
0.693147180559945
% yRefPol
yDOWN = yRefPol - RESIDUO
yDOWN =
-0.524607073755843
tol = 1e-6;
res = 1;
n = 1;
A = zeros(2);
while res >= tol
res = abs(((x-a)^(n+1))/FRL(n+1));
A(n,1) = n;
A(n,2) = res;
n = n+1;
end
K = array2table(A,"VariableNames",["Grado","Resto"])
K = 9×2 table
5
Grado Resto
1 1 0.5000000000...
2 2 0.1666666666...
3 3 0.0416666666...
4 4 0.0083333333...
5 5 0.0013888888...
6 6 0.0001984126...
7 7 0.0000248015...
8 8 0.0000027557...
9 9 0.0000002755...
Funciones
function fact = FRL(n)
fact = 1;
for i = 1:n
fact = fact * i;
end
end
function ea = EA(a,b)
ea = abs(a-b);
end