Mirando los comentarios, realmente lo que deseo es encontrar la raíz real de (-0.5)^(1/5) la cual debería ser -0.87055056329. José me hace caer en cuenta que además de no encontrar la raiz real, tampoco da todas las raiz complejas. Habría alguna manera de que tuviera en cuenta?> ------------------------------ > > Message: 6 > Date: Thu, 15 Oct 2015 11:25:39 +0200 > From: José Trujillo Carmona <trujillo en unex.es> > To: r-help-es <r-help-es en r-project.org> > Subject: [R-es] Fwd: Re: potencia fracional de un número negativo > Message-ID: <561F7113.5070408 en unex.es> > Content-Type: text/plain; charset="UTF-8" > > > > > -------- Mensaje reenviado -------- > Asunto: Re: [R-es] potencia fracional de un n? negativo > Fecha: Thu, 15 Oct 2015 11:15:31 +0200 > De: Jos?rujillo Carmona <trujillo en unex.es> > Para: Jose Luis Ca?s Reche <canadasreche en gmail.com> > > > > El 15/10/15 a las 10:45, Jose Luis Ca?s Reche escribi? Hola. > > No s?i va por aqu?pero prueba a quitar el par?esis a (-0.5) > > > > Ejemplo > > > > > -0.03125^(1/5) > > [1] -0.5 > > > > > > > Y se ve qeu -0.5^(5) es -0.03125 > > S?ero es trampa. Primero hace la ra?y despu?pone el signo. > Generalizando hace cosas absurdas como: > > > -4^(1/2) > [1] -2 > > > > La soluci?eber?ser utilizar n?s complejos ya que la raiz de un > n? negativo tiene soluci?eneral compleja, y es real solo en el > caso particular de los exponentes inversos de un impar. Pero observo que > tampoco funciona con n?s complejos, ya que a diferencia de lo que > ocurre con otros programas no proporciona TODAS las raices, sino que > solo proporciona una > > > (-2)^3 > [1] -8 > > (-8)^(1/3) > [1] NaN > > (-8+0i)^(1/3) > [1] 1+1.732051i > > (1+1.732051i)^3 > [1] -8.000002-0.000001i > > -2, la soluci?1+1.732051i) y su conjugada (1+1.732051i) son las tres > raices c?s de -8, pero solo da una de las tres. Deber?dar las tres > y no s?omo se hace para decirle que de las tres. > > > (1-1.732051i)^3 > [1] -8.000002+0.000001i > > Saludos. > > > > > El 15/10/15 a las 06:02, Alex J. Zambrano escribi?> Hola a tod en s. > >> > >> Realizando el calculo de encontrar la ra?quinta de -0.5, la cual > >> d?to > >> de la siguiente manera > >> > >> (-0.5)^(1/5) > >> > >> El resultado que me arroja R es NaN. > >> > >> Averiguando un poco entre las ayuda de las funciones aritm?cas > >> encuentro > >> el siguiente comentario > >> > >> Users are sometimes surprised by the value returned, for example why > >> (-8)^(1/3) is NaN. For double inputs, R makes use of IEC 60559 > >> arithmetic > >> on all platforms, together with the C system function pow for the ^ > >> operator. The relevant standards define the result in many corner > >> cases. In > >> particular, the result in the example above is mandated by the C99 > >> standard. On many Unix-alike systems the command man pow gives > >> details of > >> the values in a large number of corner cases. > >> > >> ?Qu?pciones puedo utilizar para poder encontrar el resultado? > >> > >> Agradezco de antemano la colaboraci?>> > >> Cordial saludo. > >> > >> > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > [[alternative HTML version deleted]] >-- Alex Johann Zambrano Carbonell http://experienceinstatistics.blogspot.com/ [[alternative HTML version deleted]]
José Trujillo Carmona
2015-Oct-16 10:15 UTC
[R-es] potencia fracional de un número negativo
Olivier te dio las soluciones. Dos soluciones. Una utilizar la función para solucionar polinomios de orden n: a_1 x^n + a_2 x^(n-1) + ... + a_(n-1) x^2 + a_n x + a_(n+1) = 0 Se resuelve mediante: polyroot(a_(n+1), a_n, a(n-1), ..., a_2, a_1) La raiz enésima de un número b es un caso particular: b^1/n = x --------> x^n - b = 0 ----------> x^n + 0 x^(n-1) + ... + 0 x^2 + 0 x + b = 0 Que se resuelve mediante: polyroot(b, 0, ..., 0, 0, 1) Y la otra te fabricó una función para que aún sea más fácil: sq<-function(a,q){ x=as.complex(a) theta=(2*pi*(1:q)+Arg(x))/q complex(mod=Mod(x)^(1/q),arg=theta) }>/ sq(-8,3)/[1] -2+0.000000i 1-1.732051i 1+1.732051i>/ sq(-.5,5)/[1] -0.2690149+0.8279428i -0.8705506+0.0000000i -0.2690149-0.8279428i [4] 0.7042902-0.5116968i 0.7042902+0.5116968i Saludos El 16/10/15 a las 01:44, Alex J. Zambrano escribió:> Mirando los comentarios, realmente lo que deseo es encontrar la raíz real > de (-0.5)^(1/5) la cual debería ser -0.87055056329. José me hace caer en > cuenta que además de no encontrar la raiz real, tampoco da todas las raiz > complejas. Habría alguna manera de que tuviera en cuenta? > >[[alternative HTML version deleted]]
Hola Álex, Sí, la raíz real la puedes obtener calculando el módulo de la solución compleja "Mod()". Mira el ejemplo:> z <- (-0.5+0i)^(1/5) > z[1] 0.7042902+0.5116968i> Re(z)[1] 0.7042902> Im(z)[1] 0.5116968> Mod(z)[1] 0.8705506 En el ejemplo el primer cálculo se devuelve la solución principal. Si quieres el resto de soluciones ya te han indicado como hacerlo y a partir de ellas puedes volver a conseguir la solución real con Mod():> z_all <- polyroot(z=c(-0.5,0,0,0,0,1)) > z_all[1] 0.2690149+0.8279428i -0.7042902+0.5116968i -0.7042902-0.5116968i 0.8705506+0.0000000i [5] 0.2690149-0.8279428i> Mod(z_all)[1] 0.8705506 0.8705506 0.8705506 0.8705506 0.8705506 Saludos, Carlos Ortega www.qualityexcellence.es El 16 de octubre de 2015, 1:44, Alex J. Zambrano <alexjzc en gmail.com> escribió:> Mirando los comentarios, realmente lo que deseo es encontrar la raíz real > de (-0.5)^(1/5) la cual debería ser -0.87055056329. José me hace caer en > cuenta que además de no encontrar la raiz real, tampoco da todas las raiz > complejas. Habría alguna manera de que tuviera en cuenta? > > > > ------------------------------ > > > > Message: 6 > > Date: Thu, 15 Oct 2015 11:25:39 +0200 > > From: José Trujillo Carmona <trujillo en unex.es> > > To: r-help-es <r-help-es en r-project.org> > > Subject: [R-es] Fwd: Re: potencia fracional de un número negativo > > Message-ID: <561F7113.5070408 en unex.es> > > Content-Type: text/plain; charset="UTF-8" > > > > > > > > > > -------- Mensaje reenviado -------- > > Asunto: Re: [R-es] potencia fracional de un n? negativo > > Fecha: Thu, 15 Oct 2015 11:15:31 +0200 > > De: Jos?rujillo Carmona <trujillo en unex.es> > > Para: Jose Luis Ca?s Reche <canadasreche en gmail.com> > > > > > > > > El 15/10/15 a las 10:45, Jose Luis Ca?s Reche escribi? Hola. > > > No s?i va por aqu?pero prueba a quitar el par?esis a (-0.5) > > > > > > Ejemplo > > > > > > > -0.03125^(1/5) > > > [1] -0.5 > > > > > > > > > > Y se ve qeu -0.5^(5) es -0.03125 > > > > S?ero es trampa. Primero hace la ra?y despu?pone el signo. > > Generalizando hace cosas absurdas como: > > > > > -4^(1/2) > > [1] -2 > > > > > > > La soluci?eber?ser utilizar n?s complejos ya que la raiz de un > > n? negativo tiene soluci?eneral compleja, y es real solo en el > > caso particular de los exponentes inversos de un impar. Pero observo que > > tampoco funciona con n?s complejos, ya que a diferencia de lo que > > ocurre con otros programas no proporciona TODAS las raices, sino que > > solo proporciona una > > > > > (-2)^3 > > [1] -8 > > > (-8)^(1/3) > > [1] NaN > > > (-8+0i)^(1/3) > > [1] 1+1.732051i > > > (1+1.732051i)^3 > > [1] -8.000002-0.000001i > > > > -2, la soluci?1+1.732051i) y su conjugada (1+1.732051i) son las tres > > raices c?s de -8, pero solo da una de las tres. Deber?dar las tres > > y no s?omo se hace para decirle que de las tres. > > > > > (1-1.732051i)^3 > > [1] -8.000002+0.000001i > > > > Saludos. > > > > > > > > El 15/10/15 a las 06:02, Alex J. Zambrano escribi?> Hola a tod en s. > > >> > > >> Realizando el calculo de encontrar la ra?quinta de -0.5, la cual > > >> d?to > > >> de la siguiente manera > > >> > > >> (-0.5)^(1/5) > > >> > > >> El resultado que me arroja R es NaN. > > >> > > >> Averiguando un poco entre las ayuda de las funciones aritm?cas > > >> encuentro > > >> el siguiente comentario > > >> > > >> Users are sometimes surprised by the value returned, for example why > > >> (-8)^(1/3) is NaN. For double inputs, R makes use of IEC 60559 > > >> arithmetic > > >> on all platforms, together with the C system function pow for the ^ > > >> operator. The relevant standards define the result in many corner > > >> cases. In > > >> particular, the result in the example above is mandated by the C99 > > >> standard. On many Unix-alike systems the command man pow gives > > >> details of > > >> the values in a large number of corner cases. > > >> > > >> ?Qu?pciones puedo utilizar para poder encontrar el resultado? > > >> > > >> Agradezco de antemano la colaboraci?>> > > >> Cordial saludo. > > >> > > >> > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es en r-project.org > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > > [[alternative HTML version deleted]] > > > > > -- > Alex Johann Zambrano Carbonell > http://experienceinstatistics.blogspot.com/ > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
José Trujillo Carmona
2015-Oct-16 11:56 UTC
[R-es] potencia fracional de un número negativo
El problema del módulo es que pierde el signo. En tu caso sale igual porque has invertido el signo del coeficiente en el polinomio (en realidad se me pasó a a mí advertir que el término independiente debe ir con signo negativo): .> polyroot(z=c(0.5,0,0,0,0,1)) [1] 0.7042902+0.5116968i -0.2690149+0.8279428i -0.2690149-0.8279428i [4] 0.7042902-0.5116968i -0.8705506+0.0000000i .> .> z_all <- polyroot(z=c(-0.5,0,0,0,0,-1)) .> z_all [1] 0.7042902+0.5116968i -0.2690149+0.8279428i -0.2690149-0.8279428i [4] 0.7042902-0.5116968i -0.8705506+0.0000000i La última de la soluciones es la solución real, que obviamente es negativa. > Mod(z_all) [1] 0.8705506 0.8705506 0.8705506 0.8705506 0.8705506 El módulo pasa a positivas las soluciones aunque como en este caso sean negativas. Como decía el polinomio debe ser: -0.5^(1/5) = x -------> -0.5 = x^5 -------> -0.5 - x^5 = 0 Saludos. El 16/10/15 a las 12:41, Carlos Ortega escribió:> Hola Álex, > > Sí, la raíz real la puedes obtener calculando el módulo de la solución > compleja "Mod()". > Mira el ejemplo: > >> z <- (-0.5+0i)^(1/5) >> z > [1] 0.7042902+0.5116968i >> Re(z) > [1] 0.7042902 >> Im(z) > [1] 0.5116968 >> Mod(z) > [1] 0.8705506 > > En el ejemplo el primer cálculo se devuelve la solución principal. > Si quieres el resto de soluciones ya te han indicado como hacerlo y a > partir de ellas puedes volver a conseguir la solución real con Mod(): > >> z_all <- polyroot(z=c(-0.5,0,0,0,0,1)) >> z_all > [1] 0.2690149+0.8279428i -0.7042902+0.5116968i -0.7042902-0.5116968i > 0.8705506+0.0000000i > [5] 0.2690149-0.8279428i >> Mod(z_all) > [1] 0.8705506 0.8705506 0.8705506 0.8705506 0.8705506 > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > > > El 16 de octubre de 2015, 1:44, Alex J. Zambrano <alexjzc en gmail.com> > escribió: > >> Mirando los comentarios, realmente lo que deseo es encontrar la raíz real >> de (-0.5)^(1/5) la cual debería ser -0.87055056329. José me hace caer en >> cuenta que además de no encontrar la raiz real, tampoco da todas las raiz >> complejas. Habría alguna manera de que tuviera en cuenta? >> >> >>> ------------------------------ >>> >>> Message: 6 >>> Date: Thu, 15 Oct 2015 11:25:39 +0200 >>> From: José Trujillo Carmona <trujillo en unex.es> >>> To: r-help-es <r-help-es en r-project.org> >>> Subject: [R-es] Fwd: Re: potencia fracional de un número negativo >>> Message-ID: <561F7113.5070408 en unex.es> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> >>> >>> >>> -------- Mensaje reenviado -------- >>> Asunto: Re: [R-es] potencia fracional de un n? negativo >>> Fecha: Thu, 15 Oct 2015 11:15:31 +0200 >>> De: Jos?rujillo Carmona <trujillo en unex.es> >>> Para: Jose Luis Ca?s Reche <canadasreche en gmail.com> >>> >>> >>> >>> El 15/10/15 a las 10:45, Jose Luis Ca?s Reche escribi? Hola. >>>> No s?i va por aqu?pero prueba a quitar el par?esis a (-0.5) >>>> >>>> Ejemplo >>>> >>>>> -0.03125^(1/5) >>>> [1] -0.5 >>>> Y se ve qeu -0.5^(5) es -0.03125 >>> S?ero es trampa. Primero hace la ra?y despu?pone el signo. >>> Generalizando hace cosas absurdas como: >>> >>>> -4^(1/2) >>> [1] -2 >>> La soluci?eber?ser utilizar n?s complejos ya que la raiz de un >>> n? negativo tiene soluci?eneral compleja, y es real solo en el >>> caso particular de los exponentes inversos de un impar. Pero observo que >>> tampoco funciona con n?s complejos, ya que a diferencia de lo que >>> ocurre con otros programas no proporciona TODAS las raices, sino que >>> solo proporciona una >>> >>>> (-2)^3 >>> [1] -8 >>>> (-8)^(1/3) >>> [1] NaN >>>> (-8+0i)^(1/3) >>> [1] 1+1.732051i >>>> (1+1.732051i)^3 >>> [1] -8.000002-0.000001i >>> >>> -2, la soluci?1+1.732051i) y su conjugada (1+1.732051i) son las tres >>> raices c?s de -8, pero solo da una de las tres. Deber?dar las tres >>> y no s?omo se hace para decirle que de las tres. >>> >>>> (1-1.732051i)^3 >>> [1] -8.000002+0.000001i >>> >>> Saludos. >>> >>>> El 15/10/15 a las 06:02, Alex J. Zambrano escribi?> Hola a tod en s. >>>>> Realizando el calculo de encontrar la ra?quinta de -0.5, la cual >>>>> d?to >>>>> de la siguiente manera >>>>> >>>>> (-0.5)^(1/5) >>>>> >>>>> El resultado que me arroja R es NaN. >>>>> >>>>> Averiguando un poco entre las ayuda de las funciones aritm?cas >>>>> encuentro >>>>> el siguiente comentario >>>>> >>>>> Users are sometimes surprised by the value returned, for example why >>>>> (-8)^(1/3) is NaN. For double inputs, R makes use of IEC 60559 >>>>> arithmetic >>>>> on all platforms, together with the C system function pow for the ^ >>>>> operator. The relevant standards define the result in many corner >>>>> cases. In >>>>> particular, the result in the example above is mandated by the C99 >>>>> standard. On many Unix-alike systems the command man pow gives >>>>> details of >>>>> the values in a large number of corner cases. >>>>> >>>>> ?Qu?pciones puedo utilizar para poder encontrar el resultado? >>>>> >>>>> Agradezco de antemano la colaboraci?>> >>>>> Cordial saludo. >>>>> >>>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> R-help-es en r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >>> >>> >>> [[alternative HTML version deleted]] >>> >> >> -- >> Alex Johann Zambrano Carbonell >> http://experienceinstatistics.blogspot.com/ >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >