How to get the solutions of inverse cosine (acos) in the interval [0, 2π]?

68 ビュー (過去 30 日間)
Giuseppe
Giuseppe 2022 年 3 月 7 日
編集済み: Torsten 2022 年 3 月 7 日
Hi guys!
I've an expression like this one: "cos_omega = ...".
I know that the matlab function acos return only the solution in the interval [0, π].
How can I obtain the two solutions, i.e. the first one in the interval [0, π] and the second one in the interval [π, 2π]?
Is there a matlab function to perform this task?

採用された回答

Torsten
Torsten 2022 年 3 月 7 日
編集済み: Torsten 2022 年 3 月 7 日
Is there a matlab function to perform this task?
No.
But if you want to work within the branch in [0,pi] as well as in [pi,2*pi], you may define your own acos-function as
Acos_User = @(x) [acos(x),2*pi-acos(x)]
where x is given in radians.
I returns a (1x2) vector with both values.

その他の回答 (1 件)

Davide Masiello
Davide Masiello 2022 年 3 月 7 日
編集済み: Davide Masiello 2022 年 3 月 7 日
n = 10;
k = 1:n;
omegas = sort([k*2*pi-acos(cos_omega),k*2*pi+acos(cos_omega)])'
yields solutions up to [(2*n-1)*pi 2*n*pi]. For the case above
omegas =
5.6397
6.9267
11.9229
13.2099
18.2061
19.4931
24.4892
25.7762
30.7724
32.0594
37.0556
38.3426
43.3388
44.6258
49.6220
50.9090
55.9052
57.1922
62.1884
63.4754
>> cos(omegas)
ans =
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000
0.8000

カテゴリ

Help Center および File ExchangeGeometric Transformation and Image Registration についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by