Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto Metodos Numericos
Proyecto Metodos Numericos
GRUPO: CTG-02.
2
Desintegración de una sustancia.
1. OBJETIVOS.
1. Resolver el problema planteado por al menos tres métodos distintos.
II. Interpolación.
IV. Diferenciación.
V. Integración.
2. INTRODUCCIÓN.
1 Ecuaciones diferenciales - método de Euler.
Este método predice un nuevo valor de 𝑦𝑖+1 sobre un punto x, usando la primera derivada para
extrapolar en forma lineal sobre el intervalo de paso h, esto es:
𝑥0 = 0 & 𝑦0 = 5
Y así sucesivamente.
La exactitud del método de Euler aumente al disminuir el intervalo de paso h, pero es necesario usar
doble precisión en los cálculos para evitar la rápida acumulación de errores por redondeo.
3
Desintegración de una sustancia.
Este método es uno de los más utilizados para localizar raíces ya que en general es muy
eficiente y siempre converge para una función polinomial.
Se debe partir de un valor inicial para la raíz: xi, este puede ser cualquier valor, el método
convergirá a la raíz más cercana.
Si se extiende una tangente desde el punto , el punto donde esta tangente cruza al
eje x representa una aproximación mejorada de la raíz. [2]
[3]
La fórmula general para un polinomio de grado n en donde hay m parejas de datos es:
4
Desintegración de una sustancia.
4 Diferenciación.
Este método nos proporciona aproximaciones a la derivada en un punto, existen variantes en
este método: diferencias hacia atrás, centrales o hacia adelante.
[4]
5 Integración.
Se puede calcular la aproximación de la integral por medio de distintos métodos, método del
trapecio, Simpson 1/3 y Simpson 3/8. En este caso se usa el de Simpson 1/3.
[5].
5
Desintegración de una sustancia.
Se solicita una solución particular, pero se considera un problema general; es decir, se puede
ingresar una ecuación similar en cuanto a estructura, pero con constantes distintas y el
programa aproxima la solución.
Al ser una ecuación exponencial se puede hacer uso de varias herramientas tanto del cálculo
como de estadística para aproximar soluciones que cumplan con la igualdad.
Se considera el intervalo cerrado [0,500] sobre el eje x pues no se pueden considerar cantidades
negativas por la naturaleza del problema.
6
Desintegración de una sustancia.
La idea es hacer que el programa ejecute todas estas aproximaciones de y(t) y que cuando
encuentre una aproximación al valor del residuo lo muestre en pantalla.
El método de Euler nos proporciona una solución a ecuaciones diferenciales ordinarias, por lo
que se plantea el hecho de que la ecuación proporcionada es una ecuación que se resuelve por
medio de ecuaciones diferenciales; entonces al aplicar este método se llega a una solución con
un bajo margen de error.
Valor de 𝒙𝟎: Es el valor de tiempo inicial, este siempre será cero pues se considera que la
desintegración siempre inicia con la sustancia completa.
Valor de 𝒚𝟎:Es el valor que toma la variable dependiente con el valor de tiempo inicial, es decir,
𝒚𝟎 = 𝟓𝟎𝟎𝒆−𝟎.𝟎𝟐𝟒𝟖(𝟎) = 𝟓𝟎𝟎; entonces la condición siempre tendrá el valor de 500.
A partir de estas condiciones se ejecuta el proceso para resolver la ecuación diferencial, cuya
solución en determinado punto concuerda con la solución del problema. Ahora es necesario
encontrar esa aproximación entre todas las soluciones encontradas, para ello se consideran las
condiciones iniciales pues se busca un valor para y que se acerque al residuo de sustancia lo
que nos lleva a su respectivo par ordenado, el valor de x=t que es el tiempo que tarda la
sustancia en desintegrarse a ese punto residuo.
64.89669002 − 64.00
%𝑒 = 𝑥100 = 1.38
64.89669002
7
Desintegración de una sustancia.
8
Desintegración de una sustancia.
Se hace uso de la serie de Taylor para encontrar aproximaciones para el punto evaluado, es
bien sabido que la serie de Taylor no es del todo certera para algunas funciones por lo que las
aproximaciones tienen gran variación de error con los valores reales
9
Desintegración de una sustancia.
10
Desintegración de una sustancia.
Se obtiene un polinomio de grado tres con una incógnita, esta incógnita resulta ser la
aproximación de años para determinado punto inicial ingresado.
x y
10 390.1799716
20 237.6046358 Valor teórico
64.89669002
30 185.4171401
40 144.692109
Pero nosotros requerimos que esta relación nos de la abscisa por lo que se iguala el polinomio
en la ordenada de ese punto, en este caso es el residuo, es decir 100.
Al resolver esta ecuación de tercer grado se obtiene el valor del tiempo para que solo queden
esos 100 miligramos de sustancia (20%).
X=63.829708
64.89669002 − 63.829708
%𝑒 = 𝑥100 = 1.64
64.89669002
11
Desintegración de una sustancia.
12
Desintegración de una sustancia.
𝑦(𝑡) = 500𝑒−0.0248𝑥
𝑦´(𝑡) = 500(−0.0248)𝑒−0.0248𝑥
𝑑𝑦
= 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 ∗ 𝑦(𝑥) Para el caso de esta función la derivada resulta cumplir con esta igualdad.
𝑑𝑥
Se requiere además de una serie de pares ordenados, los cuales se consideran experimentales.
x y
70.896690 86.17414463
67.896690 92.8300299 Valor teórico
64.89669002
61.896690 107.7237615
58.896690 116.0440878
Una vez obtenida se aprovecha la definición de derivada para obtener el valor de x=t, es decir:
dy
𝑙𝑛 dx 2.479997
ln (− )
𝑥 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 ∗ 𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑖𝑛𝑖𝑐𝑖𝑎𝑙 = −12.4 = 64.896730
𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒 −0.248
Lo cual nos genera una muy buena aproximación al valor verdadero.
64.89669002 − 64.896730
%𝑒 = 𝑥100 = 0.0006
64.89669002
13
Desintegración de una sustancia.
14
Desintegración de una sustancia.
La integral proporciona el área bajo la curva que en este caso representa la cantidad de
sustancia desintegrada hasta el punto x=t.
Se calcula la integral completa, la integral definida en todo el intervalo de interés [0,500] por lo
que se requiere de valores experimentales.
X y
0 500
71.4286 85.04485459 Valor teórico
64.89669002
142.8571 14.46529046
214.2857 2.460397048
285.7143 0.418488218
357.1429 0.071180539
428.5714 0.012107107
500 0.002059294354
500
∫ 500𝑒−0.0248𝑥𝑑𝑥
0
Además, se calculan integrales hasta el punto que nos interesa para resolver el problema, pero
como no sabemos el valor se deja como variable.
𝑡 500 500
∫ 500𝑒−0.0248𝑥𝑑𝑥 + ∫ 500𝑒−0.0248𝑥𝑑𝑥 = ∫ 500𝑒−0.0248𝑥𝑑𝑥
0 𝑡 0
La integral total la podemos calcular sin problemas, en tanto las otras dos quedan en términos
de la variable t la cual resuelve el problema; entonces al resolver la ecuación resultante se
obtiene el valor de x que cumple y(x)=100.
64.89669002 − 64.896688
%𝑒 = 𝑥100 = 0.00000311
64.89669002
15
Desintegración de una sustancia.
16
Desintegración de una sustancia.
5. CÓDIGO.
Código en ANSI C.
#include <stdio.h>
#include <math.h>
#define indice 100
float f(double,double,double);
int main()
{
char respuesta;
double
cantidad=0,residuo=0,opcion1=0,opcion2,opcion,fpr,f2,f3,f4,f5,f6,fd=0,dx,pe=0,integral,integral2
,integral3,lim;
float constante=0,aproximado=0,a,b,h,x0,y0,x1,y1,s;
int menu,j=0,k=0,l=0,i,n,m,z,c;
double x,xs[indice],Fx[indice],F1[indice],F2[indice],F3[indice],aprox;
double e,f1,g,h1,q,R,s1=0,s2=0,raiz,s3,s4;
float xmmc,y,xexp,xsum1,xsum,xmul,ysum,ysum1,X[8],Y[8],M[8][8],r[8],me,p,bmmc,sum;
do{
printf("\n\n\t\tA continuacion seleccione un metodo de calculo.");
printf("\n1.Ecuaciones diferenciales//Metodo de euler.");
printf("\n2.Metodo polinomios de interpolacion .");
printf("\n3.Medodo de minimos cuadrados 3° orden.");
printf("\n4.Metodo de diferenciacion.");
printf("\n5.Metodo de integracion.");
printf("\n6.Metodo para comprobar.");
printf("\nIntroduzca un numero (1-6): ");
scanf("%d",&menu);
17
Desintegración de una sustancia.
switch(menu)
{
case 1://metodo de euler
i=1;
printf("\nSe requiere el intervalo [a,b].");
printf("\n\nEl valor de a: ");
scanf("%f",&a);
printf("\n\nEl valor de b: ");
scanf("%f",&b);
printf("\n\nEl valor de x0: ");
scanf("%f",&x0);
printf("\n\nEl valor de n(Se recomienda el mismo o mayor número de b para mejor precisión):
");
scanf("%d",&n);
printf("\nLa constante de la sustancia: ");
scanf("\%f",&constante);
aproximado=residuo*cantidad/100;
h=(b-a)/n;
s=y0*constante;
printf("\n\t\t\tx|y");
while (i<=n){
y1=y0+(h*s*f(y0,constante,x0));
x1=a+i*h;
if (y1>=aproximado-5&&y1<aproximado+5){
printf("El aproximado es de: %f\n",x1);
opcion1=x1;
}
}//cierrra while i<=n
printf("\nUna aproximacion de años para lograr que solo quede ese %.3lf %% es:%f
\n",residuo,opcion1);
break;
18
Desintegración de una sustancia.
for (j=0;j<3;j++){
F1[j]=(Fx[j+1]-Fx[j])/(xs[j+1]);
}
for (k=0;k<2;k++){
F2[k]=(F1[k+1]-F1[k])/(xs[k+2]-xs[0]);
}
for(l=0;l<1;l++){
F3[l]=(F2[l+1]-F2[l])/(xs[l+3]-xs[1]);
}
printf("\n\n x | Fx | F1 | F2 | F3");
19
Desintegración de una sustancia.
printf("\n\n%lf|%lf|%lf|%lf|%lf",xs[0],Fx[0],F1[0],F2[0],F3[0]);
printf("\n\n%lf|%lf|%lf|%lf|",xs[1],Fx[1],F1[1],F2[1]);
printf("\n\n%lf|%lf|%lf|",xs[2],Fx[2],F1[2]);
printf("\n\n%lf|%lf|",xs[3],Fx[3]);
aprox=Fx[0]+(F1[0]*(x-xs[0]))+(F2[0]*(x-xs[0])*(x-xs[1]))+(F3[0]*(x-xs[0])*(x-xs[1])*(x-xs[2]));
case 3:
aproximado=residuo*cantidad/100;
printf("\nAproximacion por minimos cuadrados.\n");
for(i=0;i<m;i++)
{
printf("\nEl punto x%d es: ",i);
scanf("%f",&xmmc);
X[i]=xmmc;
}
printf("\nIngresar los valores y(x)");
for(i=0;i<m;i++)
{
printf("\nEl punto y%d es: ",i);
scanf("%f",&y);
Y[i]=y;
}
n=3;
for(j=0;j<=n;j++)
{
for(k=0;k<=n;k++)
{
xsum=0;
xsum1=0;
xmul=0;
20
Desintegración de una sustancia.
xexp=1;
for(i=0;i<m;i++)
{
if((j+k)==0)
{
xsum1=xsum+1;
xsum=xsum1;
}
else
{ xexp=1;
for(l=1;l<=(j+k);l++)
{
xmul=X[i]*xexp;
xexp=xmul;
}
xsum1=xexp+xsum;
xsum=xsum1;
}
}
M[j][k]=xsum;
}
}
ysum=0;
ysum1=0;
xmul=0;
for(j=0;j<=n;j++)
{
ysum=0;
ysum=0;
xmul=0;
for(i=0;i<m;i++)
{
if(j==0)
{
ysum1=ysum+Y[i];
ysum=ysum1;
}
else
{
xexp=1;
for(l=1;l<=j;l++)
{
xmul=X[i]*xexp;
21
Desintegración de una sustancia.
xexp=xmul;
}
ysum1=(xexp*Y[i])+ysum;
ysum=ysum1;
}
M[j][n+1]=ysum;
}
}
for(i=0;i<=(n-1);i++)
for(k=i;k<=n;k++)
if(M[k][i]!=0)//pivoteo
{
for(j=(i+1);j<=n;j++)
{
me=M[j][i]/M[i][i];
for(z=0;z<=(n+1);z++)
{
bmmc=M[j][z]-(me*M[i][z]);
M[j][z]=bmmc;
}
if(M[n][n]==0)
{
printf("No existe solución unica");
}
else
{
r[n]=M[n][n+1]/M[n][n];
for(i=(n-1);i>=0;i--)
22
Desintegración de una sustancia.
{
sum=0;// se realiza la sustituacion hacia atras
for(j=(i+1);j<=n;j++)
{
p=M[i][j]*r[j];
sum=sum+p;
}
r[i]=(M[i][n+1]-sum)/M[i][i];
}
}
printf("\n %fx^3+(%f)x^2+(%f)x+(%f)=0",e,f1,g,h1);
f1=f1/e;
g=g/e;
h1=h1/e;
//solucion de ecuacion 3° grado
q=((3*g)-(f1*f1))/9;
R=(9*f1*g-27*h1-2*(f1*f1*f1))/54;
raiz=sqrt((q*q*q)+(R*R));
s1=pow(R+raiz,1.0/3);
s2=(R-raiz)*-1;
s3=pow(s2,1.0/3);
s4=s3*-1;
x1=s1+s4-(f1/3);
printf("\nLa aproximacion de años es: %f",x1);
break;
case 4:
printf("Calculo de derivadas, para hacer el calculo se solicitan los datos siguientes: ");
printf("\nCual es la constante de la sustancia?: ");
scanf("%f",&constante);
printf("\n\nDato del intervalo: ");
scanf("%lf",&dx);
23
Desintegración de una sustancia.
aproximado=residuo*cantidad/100;
pe=(log(aproximado/cantidad))/constante;
if(opcion==1){
printf("\n\nPrimera derivada\n");
printf("\n\t1.Primeras diferencias centrales.");
printf("\n\t2.Segundas diferencias centrales.");
printf("\nElija una opcion: ");
scanf("%lf",&opcion2);
if(opcion2==1){
printf("\n\nValor de F(%f): ",(pe-dx));
scanf("%lf",&f1);
printf("\n\nValor de F(%f): ",pe);
scanf("%lf",&f2);
printf("\n\nValor de F(%f): ",(pe+dx));
scanf("%lf",&f3);
fd=(f3-f1)/(2*dx);
}
else if(opcion2==2){
printf("\n\nValor de F(%f): ",(pe+(2*dx)));
scanf("%lf",&f1);
printf("\n\nValor de F(%f): ",(pe+dx));
scanf("%lf",&f2);
printf("\n\nValor de F(%f): ",(pe-dx));
scanf("%lf",&f3);
printf("\n\nValor de F(%f): ",(pe-(2*dx)));
scanf("%lf",&f4);
fd=(-f1+(8*f2)-(8*f3)+f4)/(12*dx);
system("cls");
printf("\nLa aproximacion de la primera derivada es: %f \n",fd);
aprox=log(fd/(cantidad*constante))/constante;
printf("\nLa aproximacion de años es:%lf \n",aprox);
}
}
24
Desintegración de una sustancia.
else if(opcion2!=1||opcion2!=2){
printf("\nOpcion no valida.");
}//cierra primer if (opcion 1)
printf("\n");
break;
case 5:
if(c==1)
{
f1=fpr;
}
else if (c==(n+1))
{
f2=fpr;
}
else
{
if((c%2)==0)
{
f3=4*fpr;
f4=f3+f4;
}
else
{
25
Desintegración de una sustancia.
f5=2*fpr;
f6=f5+f6;
}
}
s=s+dx;
c=c+1;
}
integral=(dx/3)*(f4+f6+f2+f1);
printf("\n\nLa aproximacion de la integral es %f\n\n",integral);
printf("\n\n");
aproximado=cantidad*residuo/100;
lim=(log(aproximado/cantidad))/constante;
integral2=((cantidad/constante)*exp(constante*lim))-((cantidad/constante)*exp(constante*a));
integral3=((cantidad/constante)*exp(constante*cantidad))-
((cantidad/constante)*exp(constante*lim));
case 6:
printf("\nEste metodo es para comprobar");
printf("\nIntroduce la constante de la sustancia: ");
scanf("%f",&constante);
aproximado=log((residuo*cantidad/100)/cantidad)/constante;
printf("\nSe requiere de aproximadamente %f años para que la sustancia se reduzca a %f %%
del inicial.",aproximado,residuo);
break;
default:
printf("\nHa seleccionado una opcion invalida, intente con otra.");
break;
}//cierra switch
}//cierra do secundario
while(menu!=1&&menu!=2&&menu!=3&&menu!=4&&menu!=5&&menu!=6);
//condicion de bucle.
printf("\nDesea intentar de nuevo?(s para si)\n\n");
scanf(" %c",&respuesta);
26
Desintegración de una sustancia.
}//cierra do principal
while(respuesta=='s' || respuesta=='S');
6. Conclusiones.
Los métodos que mejor aproximan la solución al problema son el método por diferenciación y
el método de integración por su carácter de precisión en cuanto a cálculos.
Además la función es fácilmente derivable e integrable lo que permite comprobar los resultados
manualmente.
7. REFERENCIAS.
[1]. Torres Moreno, J. (1993). Métodos numéricos con software en C (1° Edición. ed., Vol. único,
pp. 302-303). México D.F., D.F.: ...
[2] Torres Moreno, J. (1993). Métodos numéricos con software en C (1° Edición. ed., Vol. único,
pp. 288-289). México D.F., D.F.: ...
[3] Sánchez Guerrero, L. Ajuste de curvas. Métodos numéricos. Obtenido 03, 2017, de
http://aniei.org.mx/paginas/uam/CursoMN/curso_mn_13.html
[5] Sánchez Guerrero, L. Integración numérica. Métodos numéricos. Obtenido 03, 2017, de
http://aniei.org.mx/paginas/uam/CursoMN/curso_mn_16.html
27