En este grupo En todos

Grupo de Matemática avanzada

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 28/08/2010

>> SN=simpsonR('fn',0,5,10) %calcula el área bajo la curva entre 0 y 5

SN = 1. 2587e+003

El programa de la función para calcular esta integral es:

function SN=simpsonR(fn,a,b,n)
h=(b-a)/n;
s=(feval(fn,a)+feval(fn,b));
for k=1:2:n-1
s=s+4*feval(fn,a+k*h);
end ;
for k=2:2:n-2
s=s+2*feval(fn,a+k*h);
end ;

function y=fn(x)
y=x^x;

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 28/08/2010

function SN=simpsonR(fn,a,b,n)
h=(b-a)/n;

s=(feval(fn,a)+feval(fn,b));

for k=1:2:n-1

s=s+4*feval(fn,a+k*h);

end;

for k=2:2:n-2

s=s+2*feval(fn,a+k*h);

end;

function y=fn(x)

y=x^x;

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 28/08/2010

Pero, si se necesita la función polinómica integrable de manera fácil se halla el polinomio de interpolación de varios puntos en el primer cuadrante de f(x) = x^x

Sergio Barrios Chicaisa
Magister comunicación educativa menció...
Escrito por Sergio Barrios Chicaisa
el 28/08/2010

Saludos Don Héctor

Me parece bien. A propósito yo no manejo el Matlab pero hace tiempo he querido se taaprender. El lenguaje que manejo es el Visual Basic en la versión 6. 0 Así gracias porque me servirá como ejemplo.
Quisiera preguntarle algo. ¿Es posible comunicarse más directamente mediante archivos pdf? Resulta que es muy incómodo escribir notación matemática en archivos de texto como el que estamos usando en este momento. Personalmente utilizo el SWP(scientific work place) y después paso éstos a pdf, ya que no todos cuentan con dicho programa.
En cuanto a la función x^x se puede integrar por supuesto entre dos valores,en un intervalo. Y métodos hay varios,pero encontrar una función cuya derivada sea x^x, no es posible a menos que sea una aproximación, que puede ser bastante buena dentro de un cierto intervalo,por ejemplo usando un desarrollo en serie de Taylor, o interpolación como Ud mostró también un ejemplo bastante ilustrativon en un mensaje anterior.
Bueno por el momento, muchos saludos, y estaré atento a sus aportes que muestran a una persona dedicada a su oficio con mucha pasión.


saludos fraternales desde Chile
Sergio
P.S. Le pregunto si me permite pertenecer a su red de seguidores.

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 28/08/2010

Usando la interpolación de Lagrange se encontró el polinomio P(x) para las abscisas positivas o cero.

P(x) = 17. 3250x^5 -166. 2083x^4 + 566. 9583x^3 -795. 7917x^2 + 377. 7167x + 1. 0000

Pueden evaluar el polinomio con valores de f(x) = x^x y compararlos con los valores dados por el polinomio.

Ahora integrar P(x) es muy fácil, y el problema estaría resuelto parcialmente.

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 28/08/2010

OK

Desde luego Sergio, mi e-mail es: hipa2450@yahoo. Com

De esta manera nos podemos enviar algunos contenidos de una manera más fluida, con notación matemática adecuada.

Gracias, hasta el siguiente mensaje. Bye

Elmer Soto
Lima, Perú
Escrito por Elmer Soto
el 29/08/2010

Hector

Graficando el polinomio y comparando con x^x las graficas no son nada parecidos

para x=2. 5 x^x=9. 88212
p(x)=29. 6999

Para x=10 x^x=561574.
p(x)=10000000000

Elmer Soto
Lima, Perú
Escrito por Elmer Soto
el 29/08/2010

Tratando de resolver la integral x^x de cero a una constante p

Trate de resolverlo construyendo n rectángulos de base b y altura x^x

Nos percatamos que debe cumplirse p = b x n

Integral = b b^b +b (2b)^(2b) +.... + b (nb)^(nb)

= sumatoria de 1 hasta n de ( b (nb)^(nb))

=sumatoria de 1 hasta n de p/n (p^p)
=sumatoria de 1 hasta n de (p^(p+1))/n
=(p^(p+1)) sumatoria de 1 hasta n de 1/n

y aquí me topo con otro problema
la sumatoria de 1 hasta n de 1/n no converge
1+1/2+1/3+1/4.......

Elmer Soto
Lima, Perú
Escrito por Elmer Soto
el 29/08/2010

Aquí calcule algunos valores de:

sumatoria de n=1 hasta 10^2 de 1/n = 5. 18738
sumatoria de n=1 hasta 10^3 de 1/n = 7. 48547
sumatoria de n=1 hasta 10^4 de 1/n = 9. 78761
sumatoria de n=1 hasta 10^5 de 1/n = 12. 0901
sumatoria de n=1 hasta 10^6 de 1/n =14. 3927

Saludos

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

El polinomio está calculado por ahora con 5 puntos solamente, para que sea más preciso es necesario tomar más puntos. Sólamente tomé algunos puntos discretos en el intervalo [0 5]. La precisión que quieras te la das tú.

En métodos numéricos, se exige una precisión a priori. Si el error no es muy grande, se da como buena aproximación.

Tómalo tú con 100 puntos o más y miras la precisión, calculando el polinomio de Lagrange o el polinomio de Newton.

Diseña el algoritmo y prográmalo!

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

Los siguientes son los coeficientes de un polinomio de grado 20, multiplicado por 10^8 cada uno de sus términos, con doble precisión: míralo qué tal se ajusta. Está hecho para valores de hasta 10^10, para valores mayores, es posible, pero se necesita trabajar con mayor precisión. OK?

P =1. 0e+008 *[ 0. 000000000000731 -0. 000000000067874 0. 000000002942236 -0. 000000079049174 0. 000001474017472 -0. 000020243619954 0. 000212067817290 -0. 001731615058080 0. 011166259087844 -0. 057265066629700
0. 234057413372262 -0. 760702750009604 1. 952664340336800 -3. 911951120124969 6. 004969257213897 -6. 870303089908905 5. 616814268835144 -3. 065274864117584 0. 985947796079330 -0. 138584051112198 0. 000000010000000]

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

Creo que el método de SIMPSON es el más adecuado hasta ahora de los que he probado.

Por ejemplo el área bajo la curva desde 0 hasta 10 es:

1. 243056269120906e+003 unid. De sup.

El área bajo la curva desde 0 a 20 es:

2. 705339446700841e+025 unid. De sup.

El área bajo la curva desde 0 a 100 es:

3. 382723372943241e+199 unid. De sup.

Estoy probando el porcentaje de error cometido, pero creo que es muy bajo.

Elmer Soto
Lima, Perú
Escrito por Elmer Soto
el 29/08/2010

Amigo Hector

el área bajo la curva desde 0 hasta 10 me sale: 3. 05749 x 10^9
el área bajo la curva desde 0 hasta 20 me sale: 2. 63265 x 10^25
el área bajo la curva desde 0 hasta 100 me sale: 1. 78464 x 10^199

Llevarlo a un polinomio tomando unos puntos no es adecuado.
Para x
>1
x^x me parece creciente (no lo he demostrado, sólo he tomado números enteros)
Un polinomio es... Creciente, decreciente, creciente, decreciente.... Dependiendo del grado del polinomio

el polinomio se ajustara solamente a los puntos tomados, si tomamos valores entre los puntos pueden ser muy diferentes con la función original

en todo caso podría utilizarse la serie de Taylor entorno a 1
=1+(x-1)+(x-1)^2+(1/2)(x-1)^3+(1/3)(x-1)^4+(1/12)(x-1)^5+(3/40)(x-1)^6+.....



Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

Reviso nuevamente por el método de SIMPSON:

De 0 a 1 : 0. 783438389761214
De 0 a 2: 2. 833908766702283
De 0 a 3: 14. 508609879449615
De 0 a 4: 1. 141192487205431e+002
De 0 a 5: 1. 241819009232129e+003
De 0 a 6: 1. 712897239878071e+004
De 0 a 7: 2. 847166635954887e+005
De 0 a 8: 5. 526855914237856e+006
De 0 a 9: 1. 225973476301579e+008
De 0 a 10: 3. 057691683286182e+009
De 0 a 15: 1. 187464972171462e+017
De 0 a 20: 2. 638211539426587e+025
De 0 a 50: 2. 015495001245119e+084
De 0 a 100: 1. 785580314436935e+199

En muchos casos se trata de afinar la precisión, nada más. He calculado el número pi con un millón de cifras decimales. En Monografías. Com tengo algunos escritos sobre esto. Si se escribe pi=3. 1416 es una mera aproximación con precisión de 1 diezmilésima, depende la necesidad. El récord de cifras decimales de pi, creo que la tienen unos japoneses con más de mil millones de dígitos decimales.

El MATLAB tiene una gran ventaja respecto a otros lenguajes de programación o software matemático del mercado:

- Es abierto, es decir yo mismo puedo programar mis propias funciones.
- Creo mis funciones a mi propia medida
- No consumo software (tecnología), puedo crearla y asimilarla.
- Me permite hacer mis propios desarrollos
- Es compatible con otros lenguajes de programación (C, VBasic, JAVA, entre otros)
- Posee TOOLBOX adecuados a cada una de las ramas de la ingeniería
Entre otras muchas más ventajas.



Elmer Soto
Lima, Perú
Escrito por Elmer Soto
el 29/08/2010

Hector

Un favor calcula la integral de 0 a 10:
Según el método de Simpson
pero variando los valores de n
n=10
n=10^2
n=10^3
...
n=10^6
....

Mi duda es la convergencia

Saludos

Elmer

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

OK Elmer. Me parece excelente hacer comunidad, muchas veces se resuelven dudas que aparecen, o que se pueden pasar por alto y que son muy importantes, a la hora de decidir ciertos criterios.

Con mis estudiantes, aprendo más tratando de resolver dudas que preparando una clase. Muchas veces encuentran situaciones "sui generis" que uno como docente ha pasado por alto.

Una ventaja del método de Simpson es que es genérico, es decir, se acomoda a cualquier función, y la universalidad es importante. No he examinado aún el método de Series de Taylor que propones. En muchas situaciones es válido, por ejemplo para funciones de la forma a/(1-u)^n también e^u, pero ya tendré el tiempo para dedicarle a las series de Taylor.

Normalmente, el software del mercado utiliza series de Taylor u otra serie, el método de Simpson o el método trapezoidal.

Respecto a lo que me pides, con muchísimo gusto lo hago:

>> SN=simpsonR('fn',0,10,10)

SN = 3. 8622e+009

>> SN=simpsonR('fn',0,10,100)

SN = 3. 0577e+009

>> SN=simpsonR('fn',0,10,1000)

SN = 3. 0575e+009

>> SN=simpsonR('fn',0,10,10000)

SN = 3. 0575e+009







Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

>> SN=simpsonR('fn',0,10,10)

SN = 3. 862212335000000e+009

>> SN=simpsonR('fn',0,10,100)

SN = 3. 057691683286182e+009

>> SN=simpsonR('fn',0,10,1000)

SN = 3. 057488933419296e+009

>> SN=simpsonR('fn',0,10,10000)

SN = 3. 057488912867362e+009

Hector Pabon
Ingenieria de sistemas universidad dis...
Escrito por Hector Pabon
el 29/08/2010

Utilizando el método trapezoidal, se obtiene:

>> TN=trapezoidR('fn',0,10,10)

TN = 5. 405071317500000e+009

>> TN=trapezoidR('fn',0,10,100)

TN = 3. 084959204456839e+009

>> TN=trapezoidR('fn',0,10,1000)

TN = 3. 057764123150696e+009

>> TN=trapezoidR('fn',0,10,10000)

TN = 3. 057491665019023e+009

Parece converger, más rápido por el método de Simpson que por el Trapezoidal



Elmer Soto
Lima, Perú
Escrito por Elmer Soto
el 30/08/2010

Hola Hector

Gracias

Elmer

Saul Linares
Ingenieria de petroleo universidad de ...
Escrito por Saul Linares
el 30/08/2010

Hola Sergio, o tal vez que intente resolver la integral exp(-x^2), esta integral no tiene solución analítica, (y eso si esta comprobado) pero por supuesto si seleccionas límites de integración apropiados y utilizas algunos artificios matemáticos y transformaciones en coordenadas polares llegas a una solución sorprendente!