Está en la página 1de 9

INSTITUTO POLITÉCNICO NACIONAL.

Escuela Superior de Ingeniería


Mecánica y Eléctrica.
“Culhuacán”

Análisis Numéricos.

Profesor: Rodríguez Hernández Javier .

Alumno: Bonilla Sánchez Aldo David.


Practicas 3 y 4, de Método de Simpson y
Ecuaciones Diferenciales Método de Euler
Grupo: 4EV14.

21 – Junio – 2021.
Método de Simpson.
#include<iostream>

#include<cmath>

using namespace std;

double f(double x)

double a = log10(x); //escriba aqui la funcion cuya integral definida quiere calcular

return a;

int main()

{ cout.precision(6); //defina la precision

cout.setf(ios::fixed);

int n,i;

double a,b,c,h,sum=0,integral;

cout<<"\n\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ METODO DE SIMPSON PARA LA


EVALUACION DE INTEGRALES DEFINIDAS ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n";

cout<<"\nIngresa limites de integracion,\n\nLimite inicial, a= ";


cin>>a;

cout<<"\nLimite final, b="; //introduzca los limites de la integracion

cin>>b;

cout<<"\nIngresa numero de segmentos (DEBE SER PAR), \nn=";

cin>>n;

double x[n+1],y[n+1];

h=(b-a)/n;

for (i=0;i<n+1;i++)

x[i]=a+i*h;

y[i]=f(x[i]);

for (i=1;i<n;i+=2)

sum=sum+4.0*y[i];

for (i=2;i<n-1;i+=2)

sum=sum+2.0*y[i];

integral=h/3.0*(y[0]+y[n]+sum); //h/3*[y0+yn+4*(y1+y3+y5+...+yn-
1)+2*(y2+y4+y6+...+yn-2)]

cout<<"\nLa integral definida es "<<integral<<"\n"<<endl;

return 0;

}
Conclusion.

En el programa de la regla de Simpson


aplique dos librerías, introducir tipo de
variable doublé para almacenar valores
decimales, el usuario tiene que ingresar los
limites de integración, que seria el inicial y
final, al final el programa te pedirá que
ingreses el numero de segmentos, al final te
dará el valor de la integral definida, en
general, el método que se utiliza es para
obtener una estimación con exactitud de
tercer orden a través de un intervalo
completo.
ECUACION DIFERENCIAL MÉTODO DE
EULER.
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])


{
//Definicion de variables
double h,x0,x1,y0=1,y1,y[100],f[100],L,yv[100],et;

cout<<"\n\t *Ecuaciones Diferenciales*";


cout<<"\n\t Metodo de Euler";
cout<<"\n\n Ingresa los valores que se te piden";
cout<<"\n Ingresa h: "; cin>>h;
cout<<"\n x0: "; cin>>x0;
cout<<"\n y0: "<<y0;
cout<<"\n\n x1: "; cin>>x1;
cout<<endl;

//Desarrollo del Metodo de Euler


//Calculo de limite
L=x1/h;
//Tabla para el Metodo
cout<<"\n\n X \t\tY(x)Verdadero\tY(x)Euler \tEt(%)"<<endl;
//Ciclo for para el desarrollo del metodo y que va imprimiendo los valores
for(int i=0;i<=L;i++){
y[0]=1;
f[i]=-(2*(pow((x0+(h*i)),3)))+(12*(pow((x0+(h*i)),2)))-(20*(x0+(h*i)))+8.5;
y[i+1]=y[i]+(f[i]*h);
yv[i]=-(0.5*pow((x0+(h*i)),4))+(4*pow((x0+(h*i)),3))-
(10*pow((x0+(h*i)),2))+(8.5*(x0+(h*i)))+1;
et=((yv[i]-y[i])/yv[i])*100;

cout<<"\n"<<setiosflags(ios::fixed)<<x0+(h*i)<<"\t"<<yv[i]<<"\t"<<y[i]<<"\t"<<et;
}

cout<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Conclusión:
En el desarrollo del programa para el método de Euler se baso en la creación de dos
ciclos for para ir desarrollando las formulas y ecuaciones del problema a partir de los
ciclos con ciertas condiciones de inicio que fueron ingresadas por el usuario. El primer
for desarrolla la parte de las formulas las cuales sustituyen los valores iniciales
ingresados por el usuario y después de sacar el limite al cual debe de detenerse el
ciclo como también para el segundo ciclo for. Ya resueltos la sustitución y desarrollo
de las formulas para la aproximación de los resultados el segundo ciclo for realiza las
operaciones correspondientes a las funciones verdaderas y los errores para también
imprimirlos en ese mismo for y asi mostrarlos en el ejecutable.

En mi opinión general sobre el Método pues es muy favorable su procedimiento ya


que cuenta con menos cálculos a comparación del método de kutta. Su desarrollo se
basa en el numero de intervalos obtenidos por el valor del intervalo que le asigne el
usuario y correspondiente entre los limites de los puntos que se encuentra para
obtenerla.

También podría gustarte