Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...
-0.2がゼロでないため、ゼロによる除算 エラーを返します。
この関数は-nan、つまりNot a Numberを返すので、-nanで割ろうとするとエラーが発生します。どちらかというと、エラー文が適切でないだけです。
正解: 解は複素数領域にある。
しかし、正の入力パラメータと負の入力パラメータに対して異なる解の分岐を持たせるということであれば、まずこれらの分岐を定義すればよいのです。
.
そんな機能を作れば大丈夫です(笑)この関数は-nan、すなわちNot a Numberを返すので、-nanで割ろうとするとエラーが発生します。どちらかというと、エラー文が適切でないだけです。
いったいなぜ、-0.2が-nanになるのでしょうか?)
もう一つのテスト機能
電卓で。
mqlの関数で
では、なぜ-0.2がナンなのかというと...)
もうひとつのテスト機能
電卓で
mql関数の中で。
は-0.2~ナンではなく、1度上がった結果です。
ある数(a^m/n)の分数次数は、a^mの次数nのルートです。
副根の値が負の場合、mのべき乗と数aそのもの(私の問題では常に負なので、mのべき乗が正の場合は正、負の場合は負となる)から、負にも正にもなりうる。つまり、サブルートの値がマイナスであれば、数値もマイナスになるわけです。負の数の根は複素数領域にあるので、通常のdouble型では 複素数領域の値を操作することができず、そのため次数の標準的な実装では-nanとなります。
正解:解は複素数領域にある。
しかし、正の入力パラメータと負の入力パラメータに対して異なる解の分岐を持たせるということであれば、最初にこれらの分岐を定義すればよいのです。
.
そのような機能を作れば、すべてうまくいくでしょう ;)詳しいご回答をありがとうございました。しかし、私の場合、複素数計算は私の問題には適さないので、自然数に限定し、結果として複素数領域に入らないようにする可能性が高いです。
詳細なご回答をありがとうございました。ただ、私の場合、複素数計算は私の問題には向かないので、自然数に限定して、結果的に複素数領域に陥らないようにするのでしょう。
そういうことで、具体的に例を示しました。よく見てください。この例は、まさにあなたのケースに当てはまります。
ザイ
µlへの変換は非常に簡単です
は、-0.2~ナンではなく、度外視した結果です。
分数(a^m/n)のべき乗は、a^mの次数nの根である。
副根の値が負の場合、mのべき乗と数aそのもの(私の問題では常に負なので、mの正のべき乗で正、負のべき乗で負となる)を基準に、負にも正にもなることができる。つまり、サブルートの値がマイナスであれば、数値もマイナスになるわけです。負の数の根は複素数領域にあるので、通常のdouble型では 複素数領域の値を操作することができず、そのため次数の標準的な実装では-nanとなります。
アンドレイ そうなんだ、失言だったね。
しかし、この結果は、整数がゼロになる分数乗を生じさせます -0.2
電卓はすべてを正しく計算します。
そして、前回のテストも、電卓のようにカウントされない。
そういうことで、具体的に例を挙げました。よく見てください。
はい、わかりました、ありがとうございます。(式まで書いてある)
負の数から偶数根をとることができないという事実から、足が生えているのでしょうか。もう、わけがわからなくなってきました...。そして、最も重要なのは、それを回避する方法です。
整数度は単純に掛け算で決まるので(負の指数には逆数をとる)、負の基数への移行は容易である。分数次数は対数と指数で定義され、y^x=exp(x*ln(y))で、負数では複素数平面上に来ることになります。対数には無限の分岐があり、正しい分岐を探す手間を省くために、NANを返しているのです。
ご回答ありがとうございます。しかし、一般に算術的に正しい解をとると、そのような解を実現するには複素数しか使えないようです...。提案された方法では、基となる値が常に正の次数を持つように次数を分割する必要があり、答えは常に正となります。なぜなら、私が知っている限り、一般に受け入れられている代数学モデルによれば、負の数の根は複素数になるからだ。
は、上で提案した計算式を使ってください。
以下は同じ計算式です。
で、以下は、double を分数に変換する例です。
https://www.mql5.com/ru/forum/290279#comment_9396706