저는 플로팅 할 수있는 함수를 가지고 있습니다. 이제이 함수의 대수를 플로팅하고 싶습니다. 파이썬은 log10()이 함수에 정의되어 있지 않다고 말한다. 그래서 질문은 : f (x, a) = a * (x ** 2)와 같은 함수의 대수를 어떻게 그릴 수 있습니까?파이썬 : 함수의 로그를 그려야합니다.
0
A
답변
0
matplotlib가 함수를 그릴 수 있다고 말하는 것은 잘못된 것입니다. Matplotlib은 값만 플롯 할 수 있습니다.
함수입니다 그래서 경우
f = lambda x,a : a * x**2
당신이 먼저 그런 다음
를 통해 배열y = f(x,a)
을 플롯 할 수 있습니다
x
값의 배열을 만들고
a
a=3.1
x = np.linspace(-6,6)
을 정의해야합니다 것
ax.plot(x,y)
이제 로그를 플로팅하려면 f의 arithm, 실제로해야 할 일은 배열 y
의 대수를 플롯하는 것입니다. 그래서 당신은 새로운 배열을
y2 = np.log10(y)
을 만드는 대신 선형 스케일 함수의 로그를 보여주는에, 어떤 경우에는
ax.plot(x,y2)
그것을 그릴 것, 기능을 보여주기 위해 더 좋을 수 있습니다 로그 스케일 자체. 이것은 matplotlib의 축을 대수로 설정하고 로그 배열에 초기 배열 y
을 그려서 수행 할 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
#define the function
f = lambda x,a : a * x**2
#set values
a=3.1
x = np.linspace(-6,6)
#calculate the values of the function at the given points
y = f(x,a)
y2 = np.log10(y)
# y and y2 are now arrays which we can plot
#plot the resulting arrays
fig, ax = plt.subplots(1,3, figsize=(10,3))
ax[0].set_title("plot y = f(x,a)")
ax[0].plot(x,y) # .. "plot f"
ax[1].set_title("plot np.log10(y)")
ax[1].plot(x,y2) # .. "plot logarithm of f"
ax[2].set_title("plot y on log scale")
ax[2].set_yscale("log", nonposy='clip')
ax[2].plot(x,y) # .. "plot f on logarithmic scale"
plt.show()
0
당신의 어려움이 대수베이스 (10)를 계산하는 경우,
def g(x, a):
return math.log(f(x, a))/math.log(10)
를 사용하거나 당신이 원하는 무엇 인 아닌 양의 값에 대한 오류를 제공
def log10(x):
return math.log(x)/math.log(10)
. 이 표준의 정체성을 사용
X베이스 (B)의 로그 = 로그 (X)/로그 (b)에
그것은조차없이 log()
기능을 사용하는 기반이되는 않는 : 당신은 같은거야 모든 기초에 대한 대답.
문제가 대수베이스 (10)를 계산하거나 값을 음모 : 그래서 여기
은 세 가지 경우의 쇼케이스 예입니다? 후자의 경우 다른 계획을 세우는 것과 어떻게 다른가요? 또한'f (x, a)'는 두 값의 함수입니다. 'x''와''a'''의 변화를 구상하고 싶습니까? –x는 내 변수 여야하며 함수를 플로팅 할 때 사용할 수있는 매개 변수 여야합니다. 문제는 올바른 함수를 정의 할 수 없다는 것입니다. 로그에 함수를 넣을 수 없기 때문에 g (x, a) = log10 (f (x, a)). – user7248647
기본적으로 프로그램에 다음과 같이 말하고 싶습니다. 주어진 함수 f (x, a) (이미 그려져 있습니다)는 해당 함수의 모든 지점에서 log10()을 사용하여 플롯합니다. – user7248647