Método del Trapecio en Integración Numérica
Método del Trapecio en Integración Numérica
(UNIDAD ZACATENCO)
MÉTODO
DEL TRAPECIO
INGENIERIA ELECTRICA
MÉTODOS NUMÉRICOS - GRUPO:3EM2
PROFESOR: MANUEL TORRES SABINO
INTEGRANTES:
HIDALGO JIMÉNEZ SEBASTIÁN
MACHUCA GÓMEZ NAYELLI
SALGADO ANGEL HUMBERTO
MÉTODO DEL TRAPECIO
OBJETIVOS:
En análisis numérico la regla del trapecio es un método de integración, es decir, un
método para calcular aproximadamente el valor de una integral definida. La regla
del trapecio compuesto o regla de los trapecios es una forma de aproximar una
integral definida utilizando los trapecios.
El objetivo de este informe es comprender este método de integración, para así
poder obtener una alternativa a la hora de solucionar o calcular la integral de alguna
ecuación específica. De la misma forma, conocer el seudocódigo que nos permitir
evaluar estas integrales en un simulador.
MARCO TEÓRICO:
En matemática la regla del trapecio es un método de integración numérica, es
decir, un método para calcular aproximadamente el valor de la integral definida
Dentro del Cálculo Numérico, la Integración Numérica comprende una amplia familia
de algoritmos para el cálculo del valor numérico de una integral definida. En la
mayoría de los casos, ese valor numérico es un valor aproximado de la integral
definida. Puede haber varias razones por la cuales se desee o se necesite calcular
el valor numérico aproximado de una integral definida:
La función integrando es desconocida, pero se conocen algunos puntos de la
función, por ejemplo, puntos de datos obtenidos experimentalmente.
La función integrando no tiene función primitiva, por ejemplo: La función primitiva es
conocida, pero es más conveniente o más sencillo calcular numéricamente la
integral definida.
Donde la expresión del lado derecho es la formula para el área del trapecio. Sin
embargo es posible mejorar esta aproximación tomando dos trapecios (n = 2), y
para ello se divide el intervalo de integración [a, b], a la mitad para tener, , ver la
figura,
Así, que la nueva aproximación a la integral definida será,
SISTEMA POR RESOLVER
Con a=0
Con b = 0.8
Con una Ianalitica = 1.640533
Formula:
𝐼 = (𝑏 − 𝑎) ∗ 𝑓(𝑥𝑜)
+ 2[𝑓(𝑥1) + 𝑓(𝑥2) + 𝑓(𝑥3) + 𝑓(𝑥4) + 𝑓(𝑥5) + 𝑓(𝑥6) + 𝑓(𝑥7) + 𝑓(𝑥8)
+ 𝑓(𝑥9)] + 𝑓(𝑥1𝑜)/2(𝑛)
Calculamos a h, h = b-a / n
0.8 − 0
ℎ= = 0.08
10
TABLA Y GRAFICA
(𝑥0)=0 𝑓(𝑥𝑜)=0.2
(𝑥1)=0.08 𝑓(𝑥1)=1.230047
(𝑥2)=0.16 𝑓(𝑥2)=1.296919
(𝑥3)=0.24 𝑓(𝑥3)=1.343721
(𝑥4)=0.32 𝑓(𝑥4)=1.743393
(𝑥5)=0.4 𝑓(𝑥5)=2.456
(𝑥6)=0.48 𝑓(𝑥6)=3.186015
(𝑥7)=0.56 𝑓(𝑥7)=3.539607
(𝑥8)=0.64 𝑓(𝑥8)=3.181929
(𝑥9)=0.72 𝑓(𝑥9)=1.994401
(𝑥10)=0.8 𝑓(𝑥10)=0.232
f(x) = 0.2 + 25x − 200x 2 + 675𝑥 3 − 900𝑥 4 + 400𝑥 5
0.8
8000𝑥 3 − 10800𝑥 2 + 4050𝑥 − 400𝑑𝑥
∫ = 𝑓" = −60
0 0.8 − 0
𝐼 = (0.8 − 0) ∗ 0.2 + 2[1.230047 + 1.296919 + 1.343721 + 1.743393 + 2.456 + 3.186015 + 3.539607 + 3.181929 + 1.994401] + 0.232
20
= 1.615043
(𝑏 − 𝑎)3
𝐸𝑎 = 𝑓"(𝑥)
12(𝑛)2
(0.8 − 0)3
𝐸𝑎 = (−60) = 0.025600
12(10)2
Se oberva que el valor de Ea0.025600 se aprixima cada vez mas al valor de Et
teniendo un valor de 0.02549
ALGORITMO
CO
EN C++
DIAGRAMA DE FLUJO
CODIGO:
#include <stdio.h>
#include <math.h>
return 0;}
PANTALLA DE SALIDA
[Link]
[Link]
diferenciacion-e-integracion-numericas/metodos-de-integracion-metodo-del-
trapecio
[Link]
2012/Ingenier%C3%ADa%20Qu%C3%ADmica/2_Teoria/Tema_6_Ingenieri
a_de_la_Reaccion_Quimica/A60/603_Integracion_grafica_por_Trapecios.p
df
[Link]
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
(UNIDAD ZACATENCO)
Método de Simpson
1/3 & 3/8
INGENIERIA ELECTRICA
MÉTODOS NUMÉRICOS - GRUPO:3EM2
PROFESOR: MANUEL TORRES SABINO
INTEGRANTES:
OBJETIVOS
Encontrar una mejor manera de poder realizar cálculos con aproximaciones que
sean muy exactas y convenientes. Tomar en cuenta con es el margen de error de
determinadas aproximaciones.
MARCO TEORICO DE SIMPSON 1/3
Dentro de lo que veremos en este método de integración numérica con la regla o
método de Simpson, es una alternativa que consiste en la aproximación del cálculo
del área plana bajo una curva. Pero para ello es necesario el uso de trapecios
curvilíneos a partir de una interpolación con una función cuadrática.
Es necesario recalcar que esta aproximación se le llama “simple” por que solo utiliza
un solo polinomio. Para poder realizar dicha aproximación, es necesario conocer
tres puntos que estén espaciados pero que logre tener unión o cercanía; que es
básicamente tener los dos extremos y un punto central. Aplicando de esta manera
la expresión, se van utilizando así más puntos intermedios de tal forma que se pude
ir definiendo como una variable “compuesta”. Del método en donde se utilizan N
puntos que corresponden a n=N-1.
Uno de los inconvenientes si se puede llamar de ese modo, es que para poder
realizar este método es muy necesario tener en cuenta, que se ocupa de una
cantidad de subintervalos pares. Por lo tanto, se define un valor h que corresponde
a el ancho del subintervalo o el paso que hay entre puntos. Se calcula como h =
b−a/ n. Finalmente, la aproximación del ´área se puede calcular como:
Ejemplo:
2
Calcular el área de 𝑓(𝑥) = 𝑒 −𝑥 desde x=-1 hasta x=1
1- Para calcular el área debe calcularse su integral:
1
2 1 − (−1) 1−1
∫ 𝑒 −𝑥 𝑑𝑥 ≈ [𝑓(−1) + 4𝑓 ( ) + 𝑓(1)]
−1 6 2
1
≈ [0.3678 + 4 ∗ 1 + 0.3678] ≈ 1.5786
3
Una de las cosas que se espera de este método es que a medida que aumenta
la cantidad de puntos, la separación que hay entre ellos disminuye. Por lo que
debe de acercarse mas al valor de la integral definida.
2- Se debe de usar el compuesto por lo cual se utiliza la segunda formula:
1 − (−1)
𝑛=4⟹ℎ= = 0.5
4
3- Para este tercer paso, es necesario realizar una tabla que nos permitirá
identificar que valores son necesarios de calcular y en que parte de la
ecuación se van a necesitar.
i x F(x)
0 -1 0.3678
1 0.5 0.7788
2 0 1
3 -0.5 0.7788
4 1 0.3678
1
2 0.5
∫ 𝑒 −𝑥 𝑑𝑥 ≈ [𝑓(−1) + 𝑓(1) + 4(𝑓(−0.5) + 𝑓(0.5)) + 2𝑓(0)]
−1 3
0.5
≈ [0.3678 + 0.3678 + 4(0.7788 + 0.7788) + 2 ∗ 1] ≈ 1.4943
3
1 2
Ya por último tenemos que: ∫−1 𝑒 −𝑥 ≈ 1.4943 es una aproximación bastante
buena.
MARCO TEORICO DE SIMPSON 3/8
Ahora bien, una de las cosas que se deben de cumplir para esta regla, es
que la regla de 3/8 para n intervalos, n debe de ser múltiplo de 3.
SISTEMA A RESOLVER
Leer f, a, b, n
Si modulo (n, 3) = 0
h = (b – a) / n
suma1 = 0
suma2 = 0
suma3 = 0
Para k = 3 Hasta n – 3 Paso 3
x = a + h*k
suma1 = suma1 + f(x)
Fin Para
Para k = 1 Hasta n – 2 Paso 3
x = a + h*k
suma2 = suma2 + f(x)
Fin Para
Para k = 2 Hasta n – 1 Paso 3
x = a + h*k
suma3 = suma3 + f(x)
Fin Para
s = 3 * h * (f(a) + f(b) + 2 * suma1 + 3 * suma2 + 3 * suma3) / 8
Si no
s = ‘n debe ser múltiplo de 3’
Fin Si
Mostrar s
Fin programa
Código del programa:
1/3
#include<stdio.h>
#include<math.h>
main(){
int n,i;
double a,b,h,x,sum=0,integral;
h=fabs(b-a)/n;
for(i=1;i<n;i++){
x=a+i*h;
if(i%2==0){
sum=sum+2*f(x);
}
else{
sum=sum+4*f(x);
}
}
integral=(h/3)*(f(a)+f(b)+sum);
3/8
#include<stdio.h>
#include<math.h>
double f(double x){
return (0.2 + (25 * x) - (200 * pow(x,2)) + (675 * pow(x,3)) - (900 * pow(x,4)) + (400*pow(x,5)));
}
main(){
int n,i;
double a,b,h,x,sum=0,integral;
printf("\nINGRESA NO SI NO ES. INTERVALOS EN (MULTIPLO DE 3): ");
scanf("%d",&n);
printf("\nEL LIMITE INICIAL: ");
scanf("%lf",&a);
printf("\nEL LIMITE FINAL: ");
scanf("%lf",&b);
h=fabs(b-a)/n;
for(i=1;i<n;i++){
x=a+i*h;
if(i%3==0){
sum=sum+2*f(x);
}
else{
sum=sum+3*f(x);
}
}
integral=(3*h/8)*(f(a)+f(b)+sum);
printf("\nLA INTEGRAL ES: %lf\n",integral);
}
PANTALLA DE SALIDA
REFERENCIAS
[Link]
[Link]
diferenciacion-e-integracion-numericas/metodo-de-simpson-3-8
[Link]
[Link]
diferenciacion-e-integracion-numericas/metodo-de-simpson-1-3
[Link]
formula-y-como-funciona/
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
(UNIDAD ZACATENCO)
Método de Euler
INGENIERIA ELECTRICA
MÉTODOS NUMÉRICOS - GRUPO:3EM2
PROFESOR: MANUEL TORRES SABINO
INTEGRANTES:
OBJETIVOS:
de manera que se obtiene un conjunto discreto de n+1 puntos: x0, x1, x2,.......,xn del
intervalo de interés [x0, xf] . Para cualquiera de estos puntos se cumple que:
La condición inicial y(x0) = y0 , representa el punto P0 = (x0, y0)ñ por donde pasa la
curva solución de la ecuación de el planteamiento inicial, la cual se denotará como
F(x)= y.
Ya teniendo el punto P0 se puede evaluar la primera derivada de F(x) en ese punto;
por lo tanto:
Con esta información se traza una recta, aquella que pasa por P0 y de pendiente
f(x0, y0). Esta recta aproxima F(x) en una vecinidad de x0. Tómese la recta como
reemplazo de F(x) y localícese en ella (la recta) el valor de y correspondiente a x1.
Entonces, podemos deducir segun la Gráfica :
Se resuelve para y1:
I=0
Y1= Y0+f(x0,y0)h
f(x0,y0)= f(0,1)= −2(0)3+12(0)2-20(0)+8.5=8.5
y (0.25) = y1 = 1+8.5(0.25) =3.125
I=1
Y2= Y1+f(x1,y1)h
f(x1,y1)= f(0.25,3.125)= −2(0.25)3+12(0.25)2-20(0.25)+8.5= 4.21875
y (0.5) = y2 = 3.125+4.21875(0.25) = 4.179687
I=2
Y3= Y2+f(x2,y2)h
f(x2,y2)= f(0.5,4.179687)= −2(0.5)3+12(0.5)2-20(0.5)+8.5= 1.25
y (0.75) = y3 = 4.179687+1.25(0.25) = 4.492187
I=3
Y4= Y3+f(x3,y3)h
f(x3,y3)= f(0.75,4.492187)= −2(0.75)3+12(0.75)2-20(0.75)+8.5= -0.59375
y (1) = y4 = 4.492187+(-0.59375) (0.25) = 4.343750
I=4
Y5= Y4+f(x4,y4)h
f(x4,y4)= f(1,4.343750)= −2(1)3+12(1)2-20(1)+8.5= -1.5
y (1.25) = y5 = 4.343750+(-1.5) (0.25) = 3.96875
I=5
Y6= Y5+f(x5,y5)h
f(x5,y5)= f(1.25,3,96875)= −2(1.25)3+12(1.25)2-20(1.25)+8.5= -1.65625
y (1.5) = y6 = 3.96875+(-1.65625) (0.25) = 3.554688
I=5
Y6= Y5+f(x5,y5)h
f(x5,y5)= f(1.25,3,96875)= −2(1.25)3+12(1.25)2-20(1.25)+8.5= -1.65625
y (1.75) = y6 = 3.96875+(-1.65625) (0.25) = 3.554688
I=6
Y7= Y6+f(x6,y6)h
f(x6,y6)= f(1.5,3.554688)= −2(1.5)3+12(1.5)2-20(1.5)+8.5= -1.25
y (2) = y7 = 3.554688+(-1.25) (0.25) = 3.242188
I=7
Y8= Y7+f(x7,y7)h
f(x7,y7)= f(1.75,3.242188)= −2(1.75)3+12(1.75)2-20(1.75)+8.5= -0.46875
y (2.25) = y8 = 3.242188+(-0.46875) (0.25) = 3.125
I=8
Y9= Y8+f(x8,y8)h
f(x8,y8)= f(2,3.125)= −2(2)3+12(2)2-20(2)+8.5= 0.5
y (2.5) = y9 = 3.125+0.5 (0.25) = 3.25
I=9
Y10= Y9+f(x9,y9)h
f(x9,y9)= f(2.25,3.25)= −2(2.25)3+12(2.25)2-20(2.25)+8.5= 1.46875
y (2.75) = y10 = 3.25+1.46875 (0.25) = 3.617188
I=10
Y11= Y10+f(x10,y10)h
f(x10,y10)= f(2.5,3.617188)= −2(2.5)3+12(2.5)2-20(2.5)+8.5= 2.25
y (3) = y11 = 3.617188+2.25 (0.25) = 4.179688
I=11
Y12= Y11+f(x11,y11)h
f(x11,y11)= f(2.75,4.179688)= −2(2.75)3+12(2.75)2-20(2.75)+8.5= 2.65625
y (3) = y12 = 3.617188+2.25 (0.25) = 4.843751
I=12
Y13= Y12+f(x12,y12)h
f(x12,y12)= f(3,4.843751)= −2(3)3+12(3)2-20(3)+8.5= 2.5
y (3.25) = y13 = 4.843751+2.5 (0.25) = 5.468751
I=13
Y14= Y13+f(x13,y13)h
f(x13,y13)= f(3.25,5.468751)= −2(3.25)3+12(3.25)2-20(3.25)+8.5=1.59375
y (3.5) = y14 = 5.468751+1.59375 (0.25) = 5.867189
I=14
Y15= Y14+f(x14,y14)h
f(x14,y14)= f(3.5,5.867189)= −2(3.5)3+12(3.5)2-20(3.5)+8.5=-0.25
y (3.75) = y15 = 5.867189+(-0.25) (0.25) = 5.804689
I=15
Y16= Y15+f(x15,y15)h
f(x15,y15)= f(3.75,5.804689)= −2(3.75)3+12(3.75)2-20(3.75)+8.5=-3.21875
y (4) = y16 = 5.804689+(3.21875) (0.25) = 5
'intervalo de integración
xi = 0
xf = 4
'variables iniciales
x = xi
y=1
'establece el tamaño de paso y determina el
'número de pasos de cálculo
dx = 0.25
nc = (xf – xi)/dx
'condiciones de salida inicial
PRINT x, y
'ciclo para implementar el método de Euler
'y despliegue de resultados
DOFOR i = 1, nc
dydx = –2x3 + 12x2 – 20x + 8.5
y = y + dydx · dx
x = x + dx
PRINT x, y
END DO
DIAGRAMA DE FLUJO
Inici
oo
H, x0, x1, y0
L=x1/h
y[-1]=1
i=0 f[i]=-
(2*(pow((x0+(h*i)),3)))+(12*(pow((x0+(h*i)),2)))
i<L -(20*(x0+(h*i)))+8.5
y[i]=y[i-1]+(f[i]*h)
i++
yv[i]=-
i=j (0.5*(pow((x0+(h*i)),4)))+(4*(pow((x0+(h*i)),3))
)-(10*(pow((x0+(h*i)),2)))+(8.5*x0+h)+1
i<L
et=(yv[i]-y[i])*100;
i++
Resultados.
Fin
CODIGO
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <iomanip>
//Definicion de variables
double h,x0,x1,y0=1,y1,y[100],f[100],L,yv[100],et;
cout<<endl;
//Calculo de limite
L=x1/h;
//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;
}
PANTALLA DE SALIDA
En esta pantalla podemos ver que se ingresaron los datos que nos da nuestro
problema
[Link]
0m%C3%A9todo%20de%20Euler%20es%20un%20m%C3%A9todo
%20de%20primer%20orden,para%20construir%20m%C3%A9todos
%20m%C3%A1s%20complejos.
[Link]
program-code/6035057024434176
[Link]
[Link]
s%[Link]
[Link]
[Link]
%[Link]
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
(UNIDAD ZACATENCO)
MÉTODO
DE RUNGE KUTTA
INGENIERIA ELECTRICA
MÉTODOS NUMÉRICOS - GRUPO:3EM2
PROFESOR: MANUEL TORRES SABINO
INTEGRANTES:
HIDALGO JIMÉNEZ SEBASTIÁN
MACHUCA GÓMEZ NAYELLI
SALGADO ANGEL HUMBERTO
METODO DE RUNGE KUTTA
OBJETIVO:
MARCO TEORICO:
Uno de los métodos más utilizados para resolver numéricamente problemas de
ecuaciones diferenciales ordinarias con condiciones iniciales es el método
de Runge-Kutta de cuarto orden, el cual proporciona un pequeño margen de error
con respecto a la solución real del problema y es fácilmente programable en un
software para realizar las iteraciones necesarias.
El método de Runge-Kutta se utiliza para resolver ecuaciones diferenciales de la
forma explícita:
O en su forma Explícita:
Y es sumamente útil para casos en los que la solución no puede hallarse por los
métodos convencionales (como separación de variables). Hay variaciones en el
método de Runge-Kutta de cuarto orden pero el más utilizado es el método en el
cual se elige un tamaño de paso h y un número máximo de iteraciones n.
El método Runge- Kutta para este problema está dado por la siguiente ecuación:
Para i=0,…, n-1. La solución se da a lo largo del intervalo (xo,xo+hn) , Donde
Así, siguiente valor (yi+1) es determinado por el presente valor (yi) más el producto
del tamaño del intervalo (h) por una pendiente estimada. La pendiente un promedio
ponderado de pendientes:
Ejemplo
Usar el método de Runge Kutta para aproximar dada la siguiente ecuación
diferencial:
Primero, identificamos las condiciones iniciales, el intervalo y la función:
Para poder calcular el valor de y1 , debemos calcular primeros los valores de k1 ,k2
,k3 y k4 . Tenemos entonces que para la primera iteración:
El proceso debe repetirse hasta y5 . Por lo que en la siguiente tabla se presentan los
datos obtenidos del proceso realizado hasta este número
y(0.5)= 1.28403
#include<math.h>
double euler(double f(double x, double y), double x0, double y0, double x, double h){
double y;
while(fabs(x-x0)>0.0000000001){
y=y0+h*f(x0,y0);
y0=y;
x0=x0+h;
return y;
double RK1(double f(double x, double y), double x0, double y0, double x, double h){
double y,k1,k2;
while(fabs(x-x0)>0.0000000001){
k1=h*f(x0,y0);
k2=h*f(x0+h/2.0,y0+k1/2.0);
y=y0+k2;
y0=y;
x0=x0+h;
return y;
double RK2(double f(double x, double y), double x0, double y0, double x, double h){
double y,k1,k2,k3,k4;
while(fabs(x-x0)>0.0000000001){
k1=h*f(x0,y0);
k2=h*f(x0+h/2.0,y0+k1/2.0);
k3=h*f(x0+h/2.0,y0+k2/2.0);
k4=h*f(x0+h,y0+k3);
y=y0+1/6.0*(k1+2*k2+2*k3+k4);
y0=y;
x0=x0+h;
return y;
main(){
double x0,y0,x,y,h;
scanf("%lf",&x0);
printf("y0 = ");
scanf("%lf",&y0);
scanf("%lf",&h);
printf("x\t\tEuler(y)\tRK1(y)\t\tRK2(y)\n");
printf("______________________________________________________\n");
for(x=0;x<=2;x=x+0.25){
printf("%lf\t",x);
y=euler(f,x0,y0,x,h);
printf("%lf\t",y);
//printf("%lf\t%lf\t%lf\t%lf\n",x0,y0,x,h);
y=RK1(f,x0,y0,x,h);
printf("%lf\t",y);
y=RK2(f,x0,y0,x,h);
printf("%lf\n",y);
}
PANTALLA DE SALIDA
[Link]
[Link]
%89TODO%20DE%20RUNGE-KUTTA..pdf?sequence=8&isAllowed=y
[Link]
es
[Link]
numerico-de-runge-kutta/
[Link]
[Link]