【C++】逆関数の計算方法とグラフ表示
C++での逆関数の計算方法とグラフ表示
逆関数とは?
逆関数とは、ある関数 \( f(x) \) に対して、 \( y = f(x) \) を満たす \( x \) を \( y \) の関数として表したものです。つまり、 \( f^{-1}(y) \) とは、以下の関係を満たす関数です:
\[ f(f^{-1}(y)) = y, \quad f^{-1}(f(x)) = x \]
逆関数の計算方法
逆関数を求める手順は以下の通りです:
- 元の関数 \( y = f(x) \) を方程式として扱う
- \( x \) について解く (可能な場合)
- 得られた式を \( x = g(y) \) の形にし、 \( f^{-1}(y) \) と定義する
例として、関数 \( f(x) = 2x + 3 \) の逆関数を求めます。
y = 2x + 3 y - 3 = 2x x = (y - 3) / 2 \Rightarrow f^{-1}(y) = (y - 3) / 2
C++での実装例
C++で逆関数を求めるプログラムを作成します。
#include <iostream>
double inverseFunction(double y) {
return (y - 3) / 2;
}
int main() {
double y;
std::cout << "yの値を入力: ";
std::cin >> y;
std::cout << "逆関数の値: " << inverseFunction(y) << std::endl;
return 0;
}
グラフの表示
グラフを表示するために、Pythonのmatplotlibを利用できます。
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return 2*x + 3
def f_inv(y):
return (y - 3) / 2
x = np.linspace(-10, 10, 400)
y = f(x)
y_inv = np.linspace(-10, 10, 400)
x_inv = f_inv(y_inv)
plt.plot(x, y, label='y = 2x + 3')
plt.plot(x_inv, y_inv, label='y = (x - 3) / 2', linestyle='dashed')
plt.axline((0, 0), slope=1, color='gray', linestyle='dotted')
plt.legend()
plt.grid()
plt.show()
実行すると、元の関数と逆関数のグラフが表示されます。