0

私は2つの逆関数を書こうとしています。関数 A に値 10 を渡すと、たとえば 4,86 が返され、その数値を関数 B に渡すと、元の 10 が返されます。

関数Aで次のようなものを使用しています:

出力 = sqrt(inputForA / 範囲) * inputForA;

関数Bでそれを逆にして、出力と範囲のみを知っているinputForAを計算することは可能ですか?

4

2 に答える 2

1

基本的な数学を使用するだけです。output = pow(inputForA, 3. / 2.) * pow(range, 1. / 2.)そうinputForA = pow(output * pow(range, 1. / 2.), 2. / 3.)。これはinputForAscaleが同じ符号の場合にのみ機能しますが、最初の関数はその間隔でのみ定義されているため、これで問題ありません (sqrtは正の値に対してのみ定義されているため)。

Python の場合:

scale = 7.

def f(x):
    return math.sqrt(x / scale) * x

def g(y):
    return math.pow(y * math.pow(scale, 1. / 2), 2. / 3)

print g(f(10))
10.0

print f(g(10))
10.0

Wolfram alphaを使用して答えを得ることもできます。ここに画像の説明を入力

于 2013-01-23T19:25:04.753 に答える
1

その方程式を因数分解して、inputForA を選択するだけです。代数ステップは次のとおりです。

出力 = sqrt(inputForA / range) * inputForA

output / inputForA = sqrt(inputForA / range)

sq(出力) / sq(inputForA) = inputForA / 範囲

範囲 * sq(出力) / sq(inputForA) = inputForA

範囲 * 平方 (出力) = キューブ (入力の場合)

したがって、範囲の立方根に出力の二乗を掛けると、元の入力が得られます。ここでそれを示す良い方法はありませんが...

于 2013-01-23T19:37:21.543 に答える