python:绘制和优化相同的函数

2024-05-20 18:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下功能:

def f(x):
    return log(3*exp(3*x) + 7*exp(7*x))

我想做两件事:

1)绘制x值范围内的函数

2)使用scipy中的牛顿法求函数的根

我的问题是,绘图似乎最好使用numpy数组x=np.linspace(-2,2,1000)完成,但随后在errosTypeError: only size-1 arrays can be converted to Python scalars中计算函数结果。我可以通过简单地将logexp分别更改为np.lognp.exp来解决这个问题

但这样做会让scipy.optimize.newton不高兴

似乎我需要定义函数两次,一次用于绘图(使用np. ...),另一次用于以上面给出的形式进行优化

我无法想象事实是这样的。如有任何提示,将不胜感激


Tags: 函数功能numpylog绘图onlyreturndef
1条回答
网友
1楼 · 发布于 2024-05-20 18:45:49

似乎是合法的,您只需要使用numpy函数而不是基本数学函数:

import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt
%matplotlib inline

def f(x):
  return np.log(3*np.exp(3*x) + 7*np.exp(7*x))

x = np.linspace(-2,2,1000)
y = f(x) 
plt.scatter(x, y)

optimize.root(f, 1)

相关问题 更多 >