Problema 1
% PROBLEMA 1 – 2 PARCIAL
clc, clear, close all
% Mínimos cuadrados
x = [3, 4, 10, 15, 20, 30, 40, 50, 60, 75, 90];
y = [25.5, 23.4, 18.2, 14.2, 11, 6.7, 4.1, 2.5, 1.5, 0.7, 0.4];
% Formación de la matriz de coeficientes
n = length(x);
A = zeros(4, 4); % Matriz de coeficientes
A(1, 1) = n;
A(1, 2) = sum(x);
A(1, 3) = sum(x.^2);
A(1, 4) = sum(x.^3);
A(2, 1) = A(1, 2);
A(2, 2) = A(1, 3);
A(2, 3) = A(1, 4);
A(2, 4) = sum(x.^4);
A(3, 1) = A(1, 3);
A(3, 2) = A(1, 4);
A(3, 3) = A(2, 4);
A(3, 4) = sum(x.^5);
A(4, 1) = A(1, 4);
A(4, 2) = A(2, 4);
A(4, 3) = A(3, 4);
A(4, 4) = sum(x.^6);
% Vector de términos independientes
b = zeros(4, 1);
b(1) = sum(y);
b(2) = sum(x .* y);
b(3) = sum(x.^2 .* y);
b(4) = sum(x.^3 .* y);
% Resolución del sistema
% Método de Gauss-Jordan sin pivoteo
M = [A, b]; % Matriz aumentada
% Hacer 1 el pivote M(1, 1)
M(1, 🙂 = M(1, 🙂 / M(1, 1);
% Hacer 0 debajo del pivote en la columna 1
% 0 en la posición (2, 1)
M(2, 🙂 = M(2, 🙂 – M(2, 1) * M(1, :);
% 0 en la posición (3, 1)
M(3, 🙂 = M(3, 🙂 – M(3, 1) * M(1, :);
% 0 en la posición (4, 1)
M(4, 🙂 = M(4, 🙂 – M(4, 1) * M(1, :);
% Hacer 1 el pivote M(2, 2)
M(2, 🙂 = M(2, 🙂 / M(2, 2);
% Hacer 0 arriba y abajo del pivote en la columna 2
% 0 en la posición (1, 2)
M(1, 🙂 = M(1, 🙂 – M(1, 2) * M(2, :);
% 0 en la posición (3, 2)
M(3, 🙂 = M(3, 🙂 – M(3, 2) * M(2, :);
% 0 en la posición (4, 2)
M(4, 🙂 = M(4, 🙂 – M(4, 2) * M(2, :);
% Hacer 1 el pivote M(3, 3)
M(3, 🙂 = M(3, 🙂 / M(3, 3);
% Hacer 0 arriba y abajo del pivote en la columna 3
% 0 en la posición (1, 3)
M(1, 🙂 = M(1, 🙂 – M(1, 3) * M(3, :);
% 0 en la posición (2, 3)
M(2, 🙂 = M(2, 🙂 – M(2, 3) * M(3, :);
% 0 en la posición (4, 3)
M(4, 🙂 = M(4, 🙂 – M(4, 3) * M(3, :);
% Hacer 1 el pivote M(4, 4)
M(4, 🙂 = M(4, 🙂 / M(4, 4);
% Hacer 0 arriba y abajo del pivote en la columna 4
% 0 en la posición (1, 4)
M(1, 🙂 = M(1, 🙂 – M(1, 4) * M(4, :);
% 0 en la posición (2, 4)
M(2, 🙂 = M(2, 🙂 – M(2, 4) * M(4, :);
% 0 en la posición (3, 4)
M(3, 🙂 = M(3, 🙂 – M(3, 4) * M(4, :);
% Solución
coef = M(:, end);
% Coeficientes del polinomio de grado 3
a0 = coef(1);
a1 = coef(2);
a2 = coef(3);
a3 = coef(4);
% Polinomio grado 3
p3 = [a3, a2, a1, a0]; % De mayor a menor grado
% Redefinir el rango para la gráfica de ajuste
xx = [1:0.01:100];
% Evaluar la gráfica de ajuste
yy = polyval(p3, xx);
% Gráficas
% Gráfica de los puntos y la recta
plot(x, y, ‘*r’)
% Gráfica (ajuste)
hold on
grid on
plot(xx, yy, ‘b’)
% Evaluar en 45
r45 = polyval(p3, 45)
fprintf(‘La concentración aproximada a los 45 minutos es %.4f M\n’, r45);
Problema 2
% Inversa sin pivoteo
clc, clear, close all
xi = [0 5 10 15 20 25];
yi = [1 0.55 0.25 0.12 0.06 0.02];
% Cambio de variable
X = xi;
Y = log(yi);
% Obtener B con sistema de ecuaciones
% Sistema de ecuaciones 2×2
n = length(xi); % # datos
AA = [n, sum(X); sum(X), sum(X.^2)]; % Matriz de coeficientes % Las sumatorios son del cambio de variable
BB = [sum(Y); sum(X .* Y)]; % Vector términos independientes
% Resolviendo el sistema de ecuaciones
% Inversa (sin pivoteo)
[f, c] = size(AA);
M = [AA, eye(c)];
for i = 1:1:c % ciclo para hacer uno los pivotes
M(i, 🙂 = M(i, 🙂 / M(i, i);
for j = 1:1:c % Ciclo para hacer ceros
if i ~= j
M(j, 🙂 = M(j, 🙂 – M(j, i) * M(i, :);
end
end
end
% Matriz inversa
inversa = M(:, 3:4)
% Solución
s = inversa * BB
% Cuando es vector solo se coloca el número
A = s(2)
B = s(1)
% Cambio de variable para C
C = exp(B)
% Evaluación
x = 26;
y = C .* exp(A .* x); % Modelo exponencial
% Graficar
% Linealizada
plot(X, Y, ‘dk’); % Datos del modelo linealizado
grid on
hold on
x2 = min(X):0.1:max(X); % Datos del dominio
y2 = A * x2 + B;
plot(x2, y2, ‘b’); % Modelo Linealizado
title(‘Linealizada’);
xlabel(‘X’);
ylabel(‘Y’);
legend(‘Datos’, ‘Modelos’);
% Gráfica exponencial
figure
plot(xi, yi, ‘dr’);
grid on
hold on
x2 = min(xi) – 2:0.1:max(xi) + 3;
y2 = C * exp(A * x2);
plot(x2, y2, ‘g’); % Modelo
plot(x, y, ‘*k’); % Evaluación
title(‘Exponencial’);
xlabel(‘x’);
ylabel(‘y’);
legend(‘Datos’, ‘Modelo’, ‘Evaluación’);
Problema 3
clc, clear, close all
% Variables Independientes
x1 = [1 2 4 2 5 4 2 6 4 6 5 4 6 1 2]; % Horas
x2 = [1 3 5 2 1 1 0 3 4 2 4 4 5 0 1]; % Exámenes preparación
% Variable dependiente
y = [7.6 7.5 8.8 7.2 9.4 9.4 8.8 9.2 9 9.6 9 8.5 9.9 6.2 7.6]; % Calificaciones
% Sistema de ecuaciones
n = length(x1);
A = [n, sum(x1), sum(x2); sum(x1), sum(x1.^2), sum(x1 .* x2); sum(x2), sum(x1 .* x2), sum(x2.^2)]; % Matriz de coeficientes
B = [sum(y); sum(x1 .* y); sum(x2 .* y)]; % Vector puntos independientes
% Inversa
s = inv(A) * B
% Solución
B0 = s(1);
B1 = s(2);
B2 = s(3);
% Evaluación
Horas = 4;
Exam = 2;
C = B0 + B1 * Horas + B2 * Exam;
% Gráficas
plot3(x1, x2, y, ‘ob’); % Datos experimentales
grid on
% Creando el intervalo
X1 = min(x1):1:max(x1);
X2 = min(x2):1:max(x2);
[X1, X2] = meshgrid(X1, X2);
Y = B0 + B1 * X1 + B2 * X2;
hold on
mesh(X1, X2, Y); % Modelo
% Punto
plot3(Horas, Exam, C, ‘dr’); % Evaluación
title(‘Línea Múltiple’);
xlabel(‘Horas’);
ylabel(‘Exámenes’);
zlabel(‘Calificación’);
legend(‘Datos’, ‘Modelo’, ‘Evaluación’);
Problema 4
% Lagrange
clc, clear, close all
xi = [8 10 12 14]; % Variable independiente
yi = [0.0236 0.0475 0.0830 0.1736]; % Variable dependiente
x0 = xi(1); x1 = xi(2); x2 = xi(3); x3 = xi(4);
y0 = yi(1); y1 = yi(2); y2 = yi(3); y3 = yi(4);
syms x
L0 = ((x – x1) * (x – x2) * (x – x3)) / ((x0 – x1) * (x0 – x2) * (x0 – x3));
L1 = ((x – x0) * (x – x2) * (x – x3)) / ((x1 – x0) * (x1 – x2) * (x1 – x3));
L2 = ((x – x0) * (x – x1) * (x – x3)) / ((x2 – x0) * (x2 – x1) * (x2 – x3));
L3 = ((x – x0) * (x – x1) * (x – x2)) / ((x3 – x0) * (x3 – x1) * (x3 – x2));
% Polinomio
P3 = simplify((y0 * L0) + (y1 * L1) + (y2 * L2) + (y3 * L3));
% Evaluación
x = 11.7;
y = vpa(subs(P3, x), 5);
% Graficar
plot(xi, yi, ‘dr’);
grid on
hold on
% Graficar modelo
x2 = min(xi):0.1:max(xi);
y2 = subs(P3, x2);
plot(x2, y2, ‘b’);
title(‘Grado 3’);
xlabel(‘x’);
ylabel(‘y’);
legend(‘Datos experimentales’, ‘Polinomio grado 3’);