1
0

More than 1 year has passed since last update.

pythonで一行で極値のx座標を求める方法

Last updated at Posted at 2022-11-03

はじめに

科学計算をしたいときに関数の極値をあたえるようなxを求めたいときがでてくると思いますが、ちょうどよい一行を見つけたので紹介させていただきます。

とりあえず準備から

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,10001)
y = np.exp(-x/10) * np.sin(x)
plt.plot(x,y)

とりあえずこんな感じで関数を用意します。

y = e^{\frac{-x}{10}} \sin(x)

今回は試しにこの関数を微分してみましょう。

dydx = np.gradient(y,x)

結論

ここで微分を簡単に取得できるわけですが、これから極値のx座標を求めるとなると大変です。
そこで以下のコードを通します。

x[1:][dydx[1:] * dydx[:-1] < 0]

このコードは、ある一点の前後の微分値の積の符号がマイナスになったときのx座標を返すというものです。こう言う風にしてみると、いろんな関数の極値のx座標が一発で求まります。是非皆さんもやってみてくださいね。

それでは。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0