Métodos numéricos.
Enviado por armando cervantes • 8 de Febrero de 2016 • Documentos de Investigación • 8.167 Palabras (33 Páginas) • 390 Visitas
Instituto Politécnico Nacional
Escuela Superior de Ingeniería Mecánica y Eléctrica
Unidad Azcapotzalco
[pic 1]
[pic 2]
Cervantes García Armando
Chicalote Rodríguez Ivan
Botello Viana Edgar
Hernández Pérez Josué
2MV3
Documentación
Equipos G2 y C
Profesor: Domínguez Zamilpa David
Métodos Numéricos
Contenido
Euler
Mínimos cuadrados múltiples
Runge Kutta
Simpson 1/3 Multiple
Simpson 1/3 Simple
Simpson 3/8
Simpson Combinado
Trapecio Multiple
Trapecio Simple
Euler
#include
#include
void enc()
{
clrscr();
gotoxy(35,1);
printf("I.P.N.");
gotoxy(33,2); printf("E.S.I.M.E.");
}
void enunciado()
{
gotoxy(3,5);
printf("Problema: Utilizar el metodo de euler para ");
printf("integrar numericamente la ecuacion siguiente");
printf("f(x,y) = -2x^3+ 12x^2 -20x +8.5");
printf("de x=0 hasta x=4 con un tamaño de paso de 0.5");
printf("La condicion inicial en x=0 es y=1. Tomar en");
printf("cuenta que la solucion exacta esta dada por la");
printf("ecuacion y = -0.5x^4 + 4x^3 - 10x^2 + 8.5x +1 \n");
printf("........................................");
printf(".........................................\n");
gotoxy(35,10); printf("SOLUCION\n");
}
void euler()
{
float fxi;
float vi_1, vi;
float f_xy;
float h;
float xr, yr;
float yi, yi_1;
fxi=0, yi=1, h=0.5, xr=0, yr=1, yi_1=1;
gotoxy(1,11);
printf("\nUsando la ecuacion de Euler yi+1 = yi + f(xi, xi) * h");
gotoxy(1,13);
printf("x yverdadera yeuler\n");
printf("---------------------------------------\n");
printf("%f %f %f\n",fxi, yr, yi_1);
for (fxi=0; fxi<4; fxi=fxi+0.5){
f_xy = -2*fxi*fxi*fxi+12*(fxi*fxi) - 20*fxi +8.5;
yi_1 = yi + f_xy*h;
xr=xr+0.5;
yr=-0.5*(xr*xr*xr*xr)+4*(xr*xr*xr)-10*(xr*xr)*8.5*(xr)+1;
printf("%f %f %f \n",fxi+0.5,yr,yi_1);
yi=yi_1;
}
}
int main()
{
char c;
enc();
enunciado();
euler();
getch();
return 0;
}
[pic 3]
Mínimos cuadrados múltiples
/*Metodo de Aproximacion Funcional */
/*Metodo de Minimo Cuadrados Lineales */
/*
NOTA IMPORTANTE: Tomar como datos de prueba los
valores del siguiente ejercicio del texto*/
#include
#include
#include
float m[10][10];
float ec[3][4]={
0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0
};
float ec1[3][4]={
0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0,
0.0,0.0,0.0,0.0
};
int n;
int i,j;
int ren;
int cl,ln;
float suma_y;
float suma_x,suma_xy,suma_x2;
float suma_c1,suma_c2,suma_c3,A,B;
float bufer1, bufer2;
int main()
{
suma_y=suma_x=suma_xy=suma_x2=0.0;
suma_c1=suma_c2=suma_c3=A=B=0.0;
bufer1=bufer2=0.0;
cl=ln=0;
i=j=n=0;
ren=0;
for(i=0;i<10;i++){
for(j=0;j<9;j++){
m[i][j]=0.0;
}
}
clrscr();
gotoxy(10,4);printf("Numero de puntos a aproximar:");
scanf("%d",&n);
cl=1;
for(i=1;i<=n;i++){
ren=1;
ln=5;cl=cl+10;
gotoxy(cl,ln);printf("x%d=",i);scanf("%f",&m[1][i]);
ren=2;
ln=7;
gotoxy(cl,ln);printf("y%d=",i);scanf("%f",&m[ren][i]);
}
/*Calcular las sumatorias*/
for(i=1;i
suma_y=suma_y+m[2][i];
suma_x=suma_x+m[1][i];
suma_xy=suma_xy+m[1][i]*m[2][i];
suma_x2=suma_x2+pow(m[1][i],2);
}
/*Colocando los valores de las sumatorias en la matriz
de las ecuaciones*/
ec[1][1]=suma_x;
ec[1][2]=n;
ec[1][3]=suma_y;
ec[2][1]=suma_x2;
ec[2][2]=suma_x;
ec[2][3]=suma_xy;
printf("\n\n suma_y=%f",suma_y);
printf("\n suma_x=%f",suma_x);
printf("\n n=%d",n);
printf("\n suma_xy=%f",suma_xy);
printf("\n suma_x^2=%f\n",suma_x2);
/*Resolviendo el sistema por el metodo de suma y resta
y sumando verticalmente para eliminar a la constante B*/
...