Beruflich Dokumente
Kultur Dokumente
Métodos Numéricos
Alumnos:
Francisco Javier Tavares Verdín
Juan Arturo Méndez Rivera
Francisco Medina García
Profesor:
M.C. Luis Ernesto Anaya Tiscareño
5º. “B”
Ajuste de curvas
Marco Teórico
De los puntos mostrados nos podemos dar cuenta que parece tener la
forma de un polinomio de segundo grado de la forma:
Recordando que:
Código en Matlab
x=sym('x') ;declara variable simbólica
pn=input('Escribe mínimo dos puntos conocidos en la curva');
num(1,1)=input('Primer numero X: ');
num(1,2)=input('Primer numero Y: ');
MatAux(1)=1;
for i=2:pn-1
num(i,1)=input('Próximo numero X: ');
num(i,2)=input('Próximo numero Y: ');
MatAux(i)=1;
MatAuxB(i)=num(i,2);
end
num(pn,1)=input('Numero Final X: ');
num(pn,2)=input('Numero Final Y: ');
MatAux(pn)=1;
n=input('Grado del polinomio X deseado: ');
MatAux=MatAux';
MatAuxB=num(:,2);
MatAx(1)=pn;
for i=1:n+1
MATB(i)=sum(MatAuxB);
MatAuxB=MatAuxB.*num(:,1);
end
for i=1:n*2
MatAux=MatAux.*num(:,1);
val=sum(MatAux);
MatAx(i+1)=val;
end
for i=1:n+1
for j=1:n+1
MATA(i,j)=MatAx(i+j-1);
end
end
MATB=MATB';
warning off MATLAB:nearlySingularMatrix
X= MATA \ MATB;
figure
scatter(num(:,1),num(:,2))
Y=0;
for i=1:length(X)
a=X(i);
Y=Y+x^(i-1)*a;
end
Y
X
for i=0:max(num(:,1))
x=i;
ya(i+1)=eval(Y);
end
w=0:max(num(:,1));
hold on
plot(w,ya)
Observaciones
El programa en Matlab es realmente más fácil que en C++,
debido a que es mas fácil trabajar las operaciones de matrices en
Matlab.
Conclusión