numpy里怎么写复合函数
希望画出复合函数的导数图像,单一函数的时候运行正常,复合函数应该怎么操作呢? 代码贴一下,不要图片。 一般来说,TypeError: 'numpy.ndarray' object is not callable的意思是你希望通过dataframe的类对象的方法得到numpy数组。 suchocolate 发表于 2021-12-3 10:06代码贴一下,不要图片。
import numpy as np
import matplotlib.pyplot as plt
#numerical derivative of sin(x)
def f(x):
y=exp(x)
return y
def g(x):
y=x**3+7*x**2+5*x
return y
def sigmoid(x):
return np.f(g(x))
N=30 #no. of grids
a=0
b=5
h=(b-a)/(N-1)
x=np.zeros(N)
f=np.zeros(N)
df=np.zeros(N)
df0=np.zeros(N)
for i in range(N):
x=i*h
f=sigmoid(x)
df0=np.f(g(x))
if i==1:
#forward difference
df=(sigmoid(x+h)-sigmoid(x))/h
elif i==N-1:
#backward difference
df=(sigmoid(x)-sigmoid(x-h))/h
elif i==2:
#central difference
df=(sigmoid(x+h)-sigmoid(x-h))/(2*h)
elif i==N-2:
#central difference
df=(sigmoid(x+h)-sigmoid(x-h))/(2*h)
else:
#5 point formula
df=(sigmoid(x-2*h)-8*sigmoid(x-h)+
8*sigmoid(x+h)-fsigmoid(x+2*h))/(12*h)
plt.plot(x,f,'b',label='f(g(x)')
plt.plot(x,df,'r',label='d(f(g(x))/dx')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.savefig('复合函数.png')
plt.show()
页:
[1]