そのため、手動でCコードに変換するいくつかのmatlabコードを使用しています。matlab コードで見ている sind および cosd 関数に相当する ac があるかどうか疑問に思っています。これは、結果をラジアンで返すc sinおよびcos関数ではなく、度で答えを返すと思います。結果に 180/pi を掛けるだけでよいと思いますが、math.h にライブラリ関数があるかどうか疑問に思っていました。または、それを行う gsl ライブラリに何かがあるとしても。
質問する
6324 次
5 に答える
10
H2CO3 の解は、 の不正確さにより、大きな引数の精度が壊滅的に失われM_PI
ます。任意の引数の一般的で安全なバージョンは次のとおりです。
#define sind(x) (sin(fmod((x),360) * M_PI / 180))
于 2013-03-10T16:43:50.923 に答える
3
いいえ、C標準ライブラリの三角関数はすべてラジアンで機能します。ただし、マクロまたはインライン関数を使用すると簡単に回避できます。
#define sind(x) (sin((x) * M_PI / 180))
また
inline double sind(double x)
{
return sin(x * M_PI / 180);
}
関数(いわゆる逆関数または「arcus」関数)の戻り値を変更する場合は、変換の反対が必要であることに注意してください。
inline double asind(double x)
{
return asin(x) / M_PI * 180;
}
于 2013-03-10T16:39:11.113 に答える
1
いいえ、Cライブラリでは使用できません。Cライブラリには、ラジアン値の引数または戻り値のみがあります。
于 2013-03-10T16:39:35.967 に答える
1
また、sind や cosd などは度数で結果を返さず、引数を度数で受け取ることに注意してください。結果を度数で返すのは asin と acosd です。
于 2013-03-10T16:44:31.600 に答える
0
Cライブラリにはありません。すべての三角関数のCライブラリ関数は、次数ではなくラジアン値として引数を取ります。あなたが言ったように、あなたは自分で変換を実行するか、専用のライブラリを使用する必要があります。
于 2013-03-10T16:38:07.963 に答える