如何应用Newton Raphson根来确定函数的根

时间:2017-08-11 12:15:01

标签: python scipy curve-fitting newtons-method

假设x是每小时风速,我试图使用Newton Raphson方法拟合,如下所示。 K是一个无量纲参数,我打算通过使用x值来解决。 def f(k)是实际的等式,def d_f(k)是等式的导数,def f2(c)求解第二个参数c。默认情况下,Scipy优化库需要以下输入才能使用Newton-Raphson或割线方法找到零。

scipy.optimize.newton(func, x0, fprime=None, args=(), tol=1.48e-08, maxiter=50, fprime2=None)

因此,我的问题是,我的Newton Raphson迭代可能出错,或者你将如何进行迭代。我的输入有问题或我需要什么其他输入?我的错误结果可以在生成的输出下面看到。

公式是: enter image description here

import warnings
import numpy as np
import scipy
import scipy.stats
import sympy
from scipy import stats as st

x = np.random.randint(1, 23, size=3000)
x0 = np.random.choice(x, 100, replace=True)

def f(k):
    return np.sum(x**k*np.log (x))/np.sum(x**k)-1/k- \
              1/len(x)*np.sum(np.log(x))

def d_f(k):
   return len(x)*np.sum(np.log (x)*np.log(np.log-[1-f(k)])- \
              np.sum(np.log(x)*np.sum(np.log(np.log-[1-f(k)]))))

def f2(c):
   return np.exp(k*np.sum(np.log (x))-np.sum(np.log(x)* \
              np.sum(np.log(np.log-[1-f(k)]))))

#Initial Guess 

k = 1.2
scipy.optimize.newton(f(k), x0, fprime=d_f(k))

Generated Output
AttributeError: 'numpy.float64' object has no attribute 'concatenate'

0 个答案:

没有答案