-1

私は C が初めてで、緑の定理の RHS を評価する C のプログラムに取り組んでいます。

グリーンの定理を知らない人はこちら

リンク

ウィキペディアから。グリーンの定理の右辺 (RHS) に関しては、偏微分と二重積分が必要です。M と L の x と y に関する偏微分を計算するプログラムを C でコーディングしました。これがそのコードです。

f() が統合される関数であることがわかるように、ここで問題が発生します。この場合、最初のコードの e[i]-d[j] です。問題は、 e[i]-d[j] がポイントの配列であるため、関数 f(u,v) がその値を呼び出すと、その時点で関数の対応する値を返す必要があることです。したがって、たとえば f(1,0.8) を取得すると、関数 e[i]-d[j] は i=1 および j=0.8 の値を返す必要があります。配列の添字は float にすることはできません。タイプ。ここで、関数 f から値を呼び出す方法に行き詰まっています。どんな助けでも大歓迎です。

4

2 に答える 2

0

0 から 1 の間の値はどこで取得しますか? その場で i,j から値を計算するだけですか? プログラムの最初の部分では、int インデックスを持つ値のみが計算されます。

float i,j を配列インデックスとして使用して値を格納する方法はありません。フロートをインデックスとして使用することを主張する場合。c++ STL map が役立つかもしれません。i+j をキーとして使用して、値にインデックスを付けることができます。

于 2013-04-10T18:05:38.600 に答える
0

あなたが遊んでいるポイントの数に一定の係数を掛けます - あなたの例では10と言います。次に、配列の添え字に同じものを掛けることができます。あなたの例では、1, 0.8 は (10, 8) になり、正常に動作します。興味があれば、これは固定小数点演算のバリエーションです。

于 2013-04-10T17:48:57.370 に答える