【C++】逆関数の計算方法とグラフ表示

【C++】逆関数の計算方法とグラフ表示

C++での逆関数の計算方法とグラフ表示

C++での逆関数の計算方法とグラフ表示

逆関数とは?

逆関数とは、ある関数 \( f(x) \) に対して、 \( y = f(x) \) を満たす \( x \) を \( y \) の関数として表したものです。つまり、 \( f^{-1}(y) \) とは、以下の関係を満たす関数です:

\[ f(f^{-1}(y)) = y, \quad f^{-1}(f(x)) = x \]

逆関数の計算方法

逆関数を求める手順は以下の通りです:

  1. 元の関数 \( y = f(x) \) を方程式として扱う
  2. \( x \) について解く (可能な場合)
  3. 得られた式を \( 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()
    

実行すると、元の関数と逆関数のグラフが表示されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です