Está en la página 1de 3

Ejercicio 3.

La velocidad que alcanza un cohete en el intervalo de tiempo 5 ≤ t ≤ 12 segundos está


dada por la siguiente tabla

t (s) Velocidad
(m/s)
5 106.8
8 177.2
12 279.2

Los datos de la velocidad fueron obtenidos mediante el uso del polinomio v(t) = a1t 2 + a2t + a3.
Determine los coeficientes a1, a2 y a3. ¿Qué pasa si usamos un método iterativo con vector inicial
x0 = [1, 2, 5]t ?

se ajusta la ecuación en forma de matriz acorde a cada uno de los resultados obtenidos en la tabla.

>> A=[25 5 1; 64 8 1; 144 12 1]

A=

25 5 1

64 8 1

144 12 1

>> b=[106.8; 177.2; 279.2]

b=

106.8000

177.2000

279.2000

Para obtener los valores de A se evaluo la función en cada tiempo, por lo que los coeficientes de la
función serán mis incognitas en este caso. El vector b son las velocidades del cohete en cada
tiempo.
Utilizando el comando de Matlab A\b se obtuvo el siguiente resultado.

>> A\b

ans =

0.2905

19.6905

1.0857

Por lo que estos son los coeficientes que debe tener la función. Utilizando los métodos iterativos
con punto inicial en [1,2,5]:

Pudimos notar que este método no converge a una solucion, por lo que la matriz original se dejo
de forma de matriz escalonada de la siguiente forma.
function [An,bn]= gausspivote(A,n)
%INPUT
%A es la matriz aumentada
%n es el numero de incognitas
%OUTPUT
%x es la solucion
for i= 1:n-1
for j =i+1:n
if abs(A(j,i))>abs(A(i,i)) % esta parte del codigo sirve para saber cual
es el valor del pivote cambiando las filas con el valor mas grande
temp=A(i,:);
A(i,:)=A(j,:);
A(j,:)=temp;
end
end
for j=i+1:n
m=A(j,i)/A(i,i);
A(j,:)=A(j,:)-m*A(i,:);
end
end
An=A(1:n,1:n);
bn=A(:,n+1);
x=SR(An,bn);
end

Con la nueva matriz de forma escalonada se utilizo el método iterativo de Gauss seidel utilizando
la nueva matriz A y el nuevo vector b:
function [X,k] = gseid(A, b, x0, er)
%Metodo iterativo de Gauss-Seidel para sistemas lineales
%_________________________________________________________________________
%INPUT
%A es una matriz
%b es el vector de lado derecho
%x0 es el vector inicial
%er es el error relativo porcentual
%OUTPUT
%X vector solucion
%k numero de iteraciones
%_________________________________________________________________________
k = 1;
n = length(A);
X = x0;
error = 100;
while er <= error
for i = 1:n
X(i) = (b(i)-(A(i,[1:i-1,i+1:n]))*X([1:i-1,i+1:n]))/(A(i,i));
end
error = norm ((X - x0)./X);
k = k + 1;
x0 = X;
end
end

Utilizando este método pudimos llegar a la misma respuesta que utilizando el comando A\b, por lo
que los coeficientes de a1, a2 y a3 son: 0.2905, 19.6905 y 1.0857 respectivamente

También podría gustarte