gpt4 book ai didi

python - 如何绘制任意一点抛物线的斜率(切线)?

转载 作者:太空宇宙 更新时间:2023-11-04 04:18:35 27 4
gpt4 key购买 nike

我想绘制一个简单的图示,说明如何使用导数找出函数在任意点的斜率。它看起来有点像这样:

我已经使用这段代码绘制了一个简单的抛物线:

import numpy as np
from matplotlib import pyplot as plt

inputs = 0.2
weights = np.arange(-6,14)
target_prediction = 0.7

prediction = inputs*weights
errors = (prediction - target_prediction) ** 2
plt.xlabel("Weight")
plt.ylabel("Error")
plt.plot(weights, error)

现在我想添加这样的东西:

current_weight = 5
# draw a short fraction of a line to represent slope
x = np.arange(optimal_weight - 3, optimal_weight + 3)
# derivative
slope = 2 * (inputs*current_weight - target_prediction)
y = slope*x # How should this equation look like?
plt.plot(x, y)

绘制一条穿过 current_weight 的切线。

但我似乎无法弄清楚,你能帮忙吗?

最佳答案

一旦在所需点处获得斜率,就需要使用点斜率形式编写切线方程:

# Define parabola
def f(x):
return x**2

# Define parabola derivative
def slope(x):
return 2*x

# Define x data range for parabola
x = np.linspace(-5,5,100)

# Choose point to plot tangent line
x1 = -3
y1 = f(x1)

# Define tangent line
# y = m*(x - x1) + y1
def line(x, x1, y1):
return slope(x1)*(x - x1) + y1

# Define x data range for tangent line
xrange = np.linspace(x1-1, x1+1, 10)

# Plot the figure
plt.figure()
plt.plot(x, f(x))
plt.scatter(x1, y1, color='C1', s=50)
plt.plot(xrange, line(xrange, x1, y1), 'C1--', linewidth = 2)

Parabola with tangent line

您可以对任何可微函数执行此操作,并且可以使用导数近似方法(例如有限差分)来消除提供解析导数的需要。

关于python - 如何绘制任意一点抛物线的斜率(切线)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54961306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com