p3 AlmodovarCremadesMario
p3 AlmodovarCremadesMario
format long;
%Ejercicio 1
clear; clc;
%Gauss-seidel
X2 = GaussSeidel(A,b);
%c)
%Resultados de uptrbk,jaco y Gauss
resu = A*X-b;
resJa = A*X1-b;
resGa = A*X2-b;
%Podemos ver como los métodos de UPt y Gauss han sido los más precisos
%porque su norma es 0. Por tanto, decimos que son los que tienen más
%precisión
addpath('C:\Users\mario\OneDrive\Escritorio\Universidad\MEN');
format long;
%Ejercicio 2
1
clear; clc;
%Adjunto funcion
% function x = Ascenso1(T, p)
% Verifico que T sea una matriz cuadrada y así veo el tamaño de la
% matriz
% [n, m] = size(T);
% if n ~= m
% error('La matriz T debe ser cuadrada.');
%end
% for i = n:-1:1
% Calculo el valor de x(i)
% x(i) = (p(i) - T(i, i+1:n) * x(i+1:n)) / T(i, i);
%end
% end
addpath('C:\Users\mario\OneDrive\Escritorio\Universidad\MEN');
format long;
%Ejercicio 3
clear; clc;
[L,U,P] = lu(E);
2
fprintf('Las soluciones del sistema de ecuaciones son las siguientes: %.10f
\n',xf);
% for i = 1:n
% Calculo el valor de x(i)
% x(i) = (y(i) - j(i, 1:i-1) * x(1:i-1)) / j(i, i);
% end
%end
x1 = Descenso(L,(P*b1));
x2 = Ascenso1(U,x1);
%Al comparar las dos soluciones, podemos ver como las dos son identicas
w = x2-xf;
y= inv(E);
g = [x2,x4,x6];
res = norm(y-g);
fprintf('La precisio de dichos calculos es: %.f\n',res);
3
Las soluciones del sistema de ecuaciones son las siguientes: -0.1228070175
Las soluciones del sistema de ecuaciones son las siguientes: -0.2938596491
Las soluciones del sistema de ecuaciones son las siguientes: 0.0350877193
Las soluciones del sistema de ecuaciones por ascenso y descenso son las
siguientes: -0.1228070175
Las soluciones del sistema de ecuaciones por ascenso y descenso son las
siguientes: -0.2938596491
Las soluciones del sistema de ecuaciones por ascenso y descenso son las
siguientes: 0.0350877193
La precisio de dichos calculos es: 0
addpath('C:\Users\mario\OneDrive\Escritorio\Universidad\MEN');
format long;
%Ejercicio 4
clear; clc;
% Defino mi matriz A
A = [19 x; x 19];
% Representación gráfica
figure;
plot(xval, condiciona, 'r-', 'LineWidth', 1.5);
xlabel('x');
ylabel('condición de A');
title('Condicionamiento en función del valor de x');
grid on;
4
%c)Teniendo en cuenta que el condicionamiento de la matriz nos mide la
%sensibilidad del error cometido al invertir una matriz o a la hora de
%resolver un sistema de ecuaciones, si los valores son cercanos a 1, la
%matriz está bien condicionada, sin embargo, si su valor es lejano a uno,
%no lo estaría. En este caso, podemos ver como estas matrices estarían muy
%mal condicionadas ya que hemos obtenidos valores muy superiores a 1.
%Respecto a la gráfica, podemos ver como existen dos picos en los que nos
%indican que dichas matrices estarían muy bien condicionadas ya que su
%valor sería cercano a 1. Por tanto, todas los valores de x cercanos a esos
%picos, serían buenos.
addpath('C:\Users\mario\OneDrive\Escritorio\Universidad\MEN');
format long;
%Ejercicio 5
clear; clc;
5
%Calculo el vector normalizado
t = V./norm(V);
%b) Compruebo el resultado, haciendo que A por su vector propio debe ser
%lamba por el vector propio asociado
Xfi = A*t;
Xfi1 = J*t;