[R-es] potencia fracional de un número negativo

José Trujillo Carmona trujillo en unex.es
Vie Oct 16 13:56:39 CEST 2015


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
>>
>
>



Más información sobre la lista de distribución R-help-es