Re: [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.00i 1-1.732051i 1+1.732051i >/ sq(-.5,5) /[1] -0.2690149+0.8279428i -0.8705506+0.000i -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]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] potencia fracional de un número negativo
O bueno, yo es que he rizado el rizo. No haría falta ni tomar logaritmos. Solo consideras -1 como la raíz de (-1)^(1/5) y ya está. > -(0.5)^(1/5) [1] -0.8705506 El 16 de octubre de 2015, 16:13, Álvaro Hernández Vicenteescribió: > Yo creo que si no te interesan todas las soluciones y solo quieres la real > podrías tomar logaritmos y olvidarte un poco del tema. > > (-0.5)^(1/5) = ( -exp( log(0.5) )^1/5 = (-1)^5 * exp( log(0.5) * 1/5 ) > > Con esto, si las quieres todas las soluciones pues hacer como ya te han > comentado con `polyroot`: > > > polyroot( z=c(-1,0,0,0,0,-1) ) * exp( 1/5*log( 0.5 ) ) > [1] 0.7042902+0.5116968i -0.2690149+0.8279428i -0.2690149-0.8279428i > [4] 0.7042902-0.5116968i -0.8705506+0.000i > > Pero si no quieres todas las soluciones puedes coger solo la raíz real de > -1: (-1)^(1/5) = -1 > y con tomar solo la exponencial del logaritmo te sobra. > > > -exp( 1/5*log( 0.5 ) ) > [1] -0.8705506 > > > Saludos, Álvaro. > > > El 16 de octubre de 2015, 13:56, José Trujillo Carmona > escribió: > >> 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.000i >> .> >> >> .> 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.000i >> >> 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.000i >>> [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 >>> 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 > To: r-help-es > Subject: [R-es] Fwd: Re: potencia fracional de un número negativo > Message-ID: <561f7113.5070...@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 > Para: Jose Luis Ca?s Reche > > > > 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 >
Re: [R-es] potencia fracional de un número negativo
Investiga el paquete rootSolve que incluye la posibilidad de pedirle todas las raices a una función con argumento imaginario. Saludos. El 15/10/15 a las 06:02, Alex J. Zambrano escribió: Hola a tod@s. Realizando el calculo de encontrar la raíz quinta de -0.5, la cual dígito 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éticas 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é opciones puedo utilizar para poder encontrar el resultado? Agradezco de antemano la colaboración. Cordial saludo. ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] potencia fracional de un número negativo
Hola. No sé si va por aquí, pero prueba a quitar el paréntesis a (-0.5) Ejemplo > -0.03125^(1/5) [1] -0.5 > Y se ve qeu -0.5^(5) es -0.03125 El 15/10/15 a las 06:02, Alex J. Zambrano escribió: Hola a tod@s. Realizando el calculo de encontrar la raíz quinta de -0.5, la cual dígito 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éticas 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é opciones puedo utilizar para poder encontrar el resultado? Agradezco de antemano la colaboración. Cordial saludo. ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] potencia fracional de un número negativo
De manera más sencilla, si queremos calcular las soluciones de x^q=a , donde q es entero, lo siguiente debería funcionar: 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.00i 1-1.732051i 1+1.732051i > sq(-.5,5) [1] -0.2690149+0.8279428i -0.8705506+0.000i -0.2690149-0.8279428i [4] 0.7042902-0.5116968i 0.7042902+0.5116968i > Un saludo. Olivier - Mensaje original - De: "Olivier Nuñez" <onu...@unex.es> Para: "José Trujillo Carmona" <truji...@unex.es> CC: "r-help-es" <r-help-es@r-project.org> Enviados: Jueves, 15 de Octubre 2015 16:19:18 Asunto: Re: [R-es] potencia fracional de un número negativo Ups, José tiene razón. Se puede tambien utilizar polyroot: para (-0.5)^(1/5) > polyroot(c(.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.000i para (-8)^(1/3) > polyroot(c(8, 0, 0, 1)) [1] 1+1.732051i -2+0.00i 1-1.732051i - Mensaje original - De: "José Trujillo Carmona" <truji...@unex.es> Para: "r-help-es" <r-help-es@r-project.org> Enviados: Jueves, 15 de Octubre 2015 11:27:20 Asunto: Re: [R-es] potencia fracional de un número negativo El 15/10/15 a las 11:10, Salvador Castillo Raya escribió: > No s� si he entendido bien la pregunta, pero creo que lo que quieres obtener > es esto: > (as.complex(-0.5)^(1/5)) > Saludos,Salva Tampoco funciona: > (as.complex(-8)^(1/3)) [1] 1+1.732051i Solo da una de las raices. >> To:r-help-es@r-project.org >> From:canadasre...@gmail.com >> Date: Thu, 15 Oct 2015 10:45:10 +0200 >> Subject: Re: [R-es] potencia fracional de un n�mero negativo >> >> Hola. >> No s� si va por aqu�, pero prueba a quitar el par�ntesis a (-0.5) >> >> Ejemplo >> >> > -0.03125^(1/5) >> [1] -0.5 >> > >> >> Y se ve qeu -0.5^(5) es -0.03125 >> >> El 15/10/15 a las 06:02, Alex J. Zambrano escribi�: >>> Hola a tod@s. >>> >>> Realizando el calculo de encontrar la ra�z quinta de -0.5, la cual d�gito >>> 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�ticas 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� opciones puedo utilizar para poder encontrar el resultado? >>> >>> Agradezco de antemano la colaboraci�n. >>> >>> Cordial saludo. >>> >>> >> ___ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es > > [[alternative HTML version deleted]] > > > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] potencia fracional de un número negativo
Ups, José tiene razón. Se puede tambien utilizar polyroot: para (-0.5)^(1/5) > polyroot(c(.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.000i para (-8)^(1/3) > polyroot(c(8, 0, 0, 1)) [1] 1+1.732051i -2+0.00i 1-1.732051i - Mensaje original - De: "José Trujillo Carmona" <truji...@unex.es> Para: "r-help-es" <r-help-es@r-project.org> Enviados: Jueves, 15 de Octubre 2015 11:27:20 Asunto: Re: [R-es] potencia fracional de un número negativo El 15/10/15 a las 11:10, Salvador Castillo Raya escribió: > No s� si he entendido bien la pregunta, pero creo que lo que quieres obtener > es esto: > (as.complex(-0.5)^(1/5)) > Saludos,Salva Tampoco funciona: > (as.complex(-8)^(1/3)) [1] 1+1.732051i Solo da una de las raices. >> To:r-help-es@r-project.org >> From:canadasre...@gmail.com >> Date: Thu, 15 Oct 2015 10:45:10 +0200 >> Subject: Re: [R-es] potencia fracional de un n�mero negativo >> >> Hola. >> No s� si va por aqu�, pero prueba a quitar el par�ntesis a (-0.5) >> >> Ejemplo >> >> > -0.03125^(1/5) >> [1] -0.5 >> > >> >> Y se ve qeu -0.5^(5) es -0.03125 >> >> El 15/10/15 a las 06:02, Alex J. Zambrano escribi�: >>> Hola a tod@s. >>> >>> Realizando el calculo de encontrar la ra�z quinta de -0.5, la cual d�gito >>> 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�ticas 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� opciones puedo utilizar para poder encontrar el resultado? >>> >>> Agradezco de antemano la colaboraci�n. >>> >>> Cordial saludo. >>> >>> >> ___ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es > > [[alternative HTML version deleted]] > > > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] potencia fracional de un número negativo
as.complex(-0.5)^(1/5) Un saludo. Olivier - Mensaje original - De: "Alex J. Zambrano" <alex...@gmail.com> Para: r-help-es@r-project.org Enviados: Jueves, 15 de Octubre 2015 6:02:44 Asunto: [R-es] potencia fracional de un número negativo Hola a tod@s. Realizando el calculo de encontrar la raíz quinta de -0.5, la cual dígito 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éticas 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é opciones puedo utilizar para poder encontrar el resultado? Agradezco de antemano la colaboración. Cordial saludo. -- Alex Johann Zambrano Carbonell http://experienceinstatistics.blogspot.com/ [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] potencia fracional de un número negativo
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> To: r-help-es > Subject: [R-es] Fwd: Re: potencia fracional de un número negativo > Message-ID: <561f7113.5070...@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 > Para: Jose Luis Ca?s Reche > > > > 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.02-0.01i > > -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.02+0.01i > > Saludos. > > > > > El 15/10/15 a las 06:02, Alex J. Zambrano escribi?> Hola a tod@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@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@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] potencia fracional de un número negativo
Hola a tod@s. Realizando el calculo de encontrar la raíz quinta de -0.5, la cual dígito 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éticas 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é opciones puedo utilizar para poder encontrar el resultado? Agradezco de antemano la colaboración. Cordial saludo. -- Alex Johann Zambrano Carbonell http://experienceinstatistics.blogspot.com/ [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es