如何计算C#中分数幂的负数?

如何计算C#中分数幂的负数?,c#,C#,我试图计算C#中分数次幂的负数 这就是我试图计算的能量 Math.Pow(-0.5264, 1.11)--> Result NaN Math.Pow(-0.5264, 2) --> 0.27709696 Math.Pow(0.5264, 1.11) --> Gives me a result. 当基数为正,幂为分数时,我得到一个值。但当基数为负值时,它不能给出结果吗 当我试图找到一个负基的幂时,它在matlab中返回一个复数格式a+bi 我真的不知道如何在C#中实现它 有人

我试图计算C#中分数次幂的负数

这就是我试图计算的能量

Math.Pow(-0.5264, 1.11)--> Result NaN
Math.Pow(-0.5264, 2) --> 0.27709696
Math.Pow(0.5264, 1.11) --> Gives me a result. 
当基数为正,幂为分数时,我得到一个值。但当基数为负值时,它不能给出结果吗

当我试图找到一个负基的幂时,它在matlab中返回一个复数格式a+bi

我真的不知道如何在C#中实现它


有人能帮我解决这个问题吗。

你可以使用
System.Numerics.Complex.Pow来计算这个表达式:

Complex.Pow(-0.5264, 1.11); //(-0,461524987676948, -0,166159219770948)
Complex.Pow(-0.5264, 2).Real; // 0.27709696
Complex.Pow(0.5264, 1.11).Real; // 0.49052441383186784

通常的
Math.Pow
返回double,这是一个实数,并不复杂。

Math.Pow
根据其规范正确运行

如果您想要复杂的值,并且没有复杂的数学库,那么计算它就足够简单了

我们知道欧拉的身份:

eix=cos x+i sin x

更具体地说

eiπ=-1

所以

0.5264 eiπ=-0.5264

所以

(0.5264)1.11E1.11Iπ=(-0.5264)1.11

现在再次使用Euler的恒等式

(0.5264)1.11(cos(1.11π)+i sin(1.11π))=(-0.5264)1.11

所以你要找的数字的真实部分是

(0.5264)1.11cos(1.11π)

虚部是

(0.5264)1.11sin(1.11π)

现在你已经把问题简化为实值函数,你可以用普通的数学库来计算


这个故事的寓意是:通过做数学来解决你的数学问题

什么让你认为是应该工作的?您对-2^1.5的期望值是什么?工作原理如所述:x<0,但不是负不确定性;y不是整数、NegativeInfinity或PositiveInfinity返回值NaN@Tigran1.11是奇数还是偶数?@狗仔队:这是正确的观点。@Silva:看看吧