パラメータとして 4 つの double を取り、この指定されたパラメータを使用して次の方法で計算された別の double を返す関数 getSlope があります。
double QSweep::getSlope(double a, double b, double c, double d){
double slope;
slope=(d-b)/(c-a);
return slope;
}
問題は、たとえば次のように引数を指定してこの関数を呼び出す場合です。
getSlope(2.71156, -1.64161, 2.70413, -1.72219);
返される結果は次のとおりです。
10.8557
これは私の計算では良い結果ではありません。Mathematica を使用して勾配を計算しましたが、同じパラメータの勾配の結果は次のとおりです。
10.8452
または精度のために桁数を増やします:
10.845222072678331.
プログラムから返された結果は、その後の計算では適切ではありません。さらに、プログラムが 10.845222072678331 から始まる 10.8557 を返す方法がわかりません (これが除算のおおよその結果であると仮定して)。自分の部門で良い結果を得るにはどうすればよいですか?
前もってありがとう、マダリナ
コマンドラインを使用して結果を出力します。
std::cout<<slope<<endl;
別のプログラム(グラフを計算するプログラム)からパラメーターを読み取ったため、パラメーターが適切ではない可能性があります。グラフからこのパラメーターを読み取った後、値を確認するために表示しましたが、表示されたベクトルは同じではない可能性があります計算値の内部精度..私はそれが本当に奇妙であることを知りません.いくつかの数値エラーが表示されます..)
パラメータを読み取っているグラフが計算されるとき、C++ で記述された数値ライブラリ (テンプレート付き) が使用されます。この計算には OpenGL は使用されません。
ありがとう、マダリナ