让我们假设所有数字都是真实的。我想在间隔中获取ArcSin
的mathematica 所有值。特别是,ArcSin
在mathematica中的正常行为是ArcSin[x]
在[-Pi/2,Pi/2]
时间间隔内x
处于[-1,1]
区间时是[0,2 Pi]
。
但是,如上所述,我需要在x
间隔内为每个{{1}}获取所有角度。有没有办法实现这个目标?
答案 0 :(得分:5)
隐含在Leonid's answer中的是公式
In[1]:= Reduce[Sin[x] == y, x]
Out[1]= (x == ArcSin[y] + 2*Pi*C[1] || x == Pi - ArcSin[y] + 2*Pi*C[1]) && Element[C[1], Integers]
从上面两个无限的解决方案系列中,您可以找到满足任何给定y = sin(x)
的{{1}}和可接受范围y
的角度(参见列昂尼德的回答,其中,每次调用时,都会生成上述条件以及额外条件x
,并为start <= x <= end
吐出所有解决方案。)
范围x
中x值的显式公式为
[0, Pi)
请注意,前两行是边缘值,中间线取自上述无限解的一个族,最后两行合并来自另一族解。这与Leonids评论一致:
对于
In[2]:= Reduce[Sin[x] == y && 0 <= x < 2 Pi, x] Out[2]= (y == -1 && x == (3 Pi)/2) || (y == 1 && x == Pi/2) || (-1 < y < 1 && x == Pi - ArcSin[y]) || (-1 < y < 0 && x == ArcSin[y] + 2 Pi) || (0 <= y < 1 && x == ArcSin[y])
的正值(输入,比如Sin
),您有x
和ArcSin[x]
Pi
,而对于-ArcSin[x]
的负值,您有x
和Pi - ArcSin[x]
。
以上公式假设2 Pi + ArcSin[x]
的主要值。
在任何2 pi时段内,给定ArcSin
的{{1}}有两种解决方案。从Sin[x] == y
(2 pi周期性)
要拥有唯一的反函数x = ArcSin[y]
,您需要选择所需的特定解(在两个无限族中)。 Mathematica选择标准范围y
。这种选择(按照惯例)是inverse trigonometric function
答案 1 :(得分:4)
您可以尝试以下内容:
Clear[getAngles];
getAngles[x_, interval : {start_, end_} : {0, 2 Pi}] :=
Module[{y},
Quiet@Cases[
Reduce[#, y] & /@
LogicalExpand[
Reduce[Reduce[Sin[y] == x, y] && start <= y < end, y]], (y ==
yrhs_?NumericQ) :> yrhs, {2}]]
例如:
In[90]:= getAngles[0.7]
Out[90]= {0.775397, 2.3662}
In[92]:= {#, Sin[#]} & /@ getAngles[0.7, {0, 4 Pi}]
Out[92]= {{0.775397, 0.7}, {2.3662, 0.7}, {7.05858, 0.7}, {8.64938, 0.7}}
答案 2 :(得分:1)
你做不到。正如您将充分了解的那样,ArcSin
是Sin
函数的反函数,它在[0,2 Pi]范围内不是双射的。此范围中的某些x值会产生相同的Sin
值(例如,Sin [3/4 [Pi]] == Sin [1/4 [Pi]]),因此您无法撤消此过程
你可以在绘图中得到的最接近的东西是:
ParametricPlot[{Sin[x], x}, {x, 0, 2 \[Pi]},
Ticks -> {Automatic, (Range[0, 8] \[Pi]/4)}]
]
[http://i.stack.imgur.com/Jcqxy.png“&GT;