[解決済み] Matlab: 逆コサイン(acos)の完全解を返す
2022-02-12 12:26:43
質問
次のような形式のMatlabのコードがあります。
syms theta x
theta = acos(x)
これは、thetaの単一の解を返します。しかし、私は完全な解を(ある限界の間で)返したいのです。
例えば
x = cos(theta)
は、theta = 60度、120度、420度などではx=0.5となります。したがって、上のコードでは、thetaがこれらすべての可能な値を返すようにしたいのです。
どなたか、この方法をご存じないでしょうか?何時間もgoogleで検索しているのですが、この方法を見つけることができません
ありがとうございます。
解決方法は?
Benoit_11のように、この文脈では記号的に解く意味がないと思います。
区間[-pi, pi]には2つの解があり、大きい方の解は
acos
:
% solution within [0, pi]
theta1 = acos(x);
% solution within [-pi, 0]
theta2 = -acos(x);
これらの解は2πのステップで繰り返される。下降と上昇の可能なステップ数は、基本解とそれぞれの限界の間の距離の整数部によって決定できる (
lower
と
upper
)を2πの単位で表示します。の場合
theta1
:
% repetitions in 2 pi intervals within limits
sd = floor((theta1 - lower) / (2 * pi));
su = floor((upper - theta1) / (2 * pi));
theta1 = (-sd : su) * 2 * pi + theta1
また、同じように
theta2
:
% repetitions in 2 pi intervals within limits
sd = floor((theta2 - lower) / (2 * pi));
su = floor((upper - theta2) / (2 * pi));
theta2 = (-sd : su) * 2 * pi + theta2
重複する可能性のあるものを除いて、1つにまとめた解決策のリストが必要な場合。
theta = unique([theta1, theta2])
と度数で表示します。
theta = theta / pi * 180;
例
x = 0.5;
lower = -10;
upper = 30;
与える
theta =
-7.3304 -5.2360 -1.0472 1.0472 5.2360 7.3304 11.5192 13.6136 17.8024 19.8968 24.0855 26.1799
関連
-
[解決済み] double 型の入力引数に対して未定義の関数 'int' が存在する [重複] 。
-
[解決済み] MATLABで1つの点の最近傍を検索する
-
[解決済み] セルコンテンツから非セル配列オブジェクトへの代入
-
[解決済み] Matlabで列ベクトルを反復処理する方法は?[重複].
-
[解決済み] Matlab: 逆コサイン(acos)の完全解を返す
-
[解決済み] Matlabで描画しています。図形を保存するか、変数を保存するか?
-
[解決済み] Wolfram AlphaとMATLABでは伝達関数のプロットが異なる
-
[解決済み] 減衰比一定の直線と根元の軌跡との交点を求めるためのrlocfindの代替プログラム(Matlab
-
[解決済み] MATLABのコードヘルプです。バックワードオイラー法
-
[解決済み] MATLABでヒストグラムを正規化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「名前が重複する関数は定義できません」エラーが出るが、重複する関数はない。
-
[解決済み] セルコンテンツから非セル配列オブジェクトへの代入
-
[解決済み] 部分ピボッティングによるLU分解 Matlab
-
[解決済み] Matlabのリスト理解
-
[解決済み] matlab で "カラーマップ" プロットを作成するにはどうすればよいですか?
-
[解決済み] Matlabによる最急降下法の実装
-
[解決済み] エラー「Improper assignment with rectangular empty matrix」の解決方法を教えてください。
-
[解決済み] matlabの*と.*の違いは何ですか?
-
[解決済み] MATLABで音を止めるには?
-
[解決済み] matlabで三角行列を作る