Skip to main content
 首页 » 编程设计

Python 没有正确计算方程

2025年05月04日39artech

我正在尝试编写一个简单的程序来绘制 x对比y .但是,它似乎没有计算出 y 的正确值。 .

例如在第一种情况下 x = -1 e^(x^2/2 - x) -1 的值应该是 3.48 ,而是返回 1 .

我遇到的另一个错误是它似乎没有绘制 x对比y , 而不是为 x 的每个值单独一行.

import numpy as np 
import math 
import matplotlib.pyplot as plt 
 
x = np.arange(-2, 2) 
y = np.arange(-2, 2) 
 
for i in range(-3, 3): 
    y[i] = math.exp(( x[i]^2/2 ) - x[i])-1 
 
print x, y 
plt.plot([x, y]) 
plt.show() 

请您参考如下方法:

内置的 numpy 数组操作非常适合这个。

这是你想要的行:

 y = np.exp(np.power(x, 2)/2 - x) - 1 

然后完整代码变为

import numpy as np 
import math 
import matplotlib.pyplot as plt 
 
x = np.arange(-2, 2) 
 
y = np.exp(np.power(x, 2)/2 - x) - 1 
 
 
print(x, y) 
plt.plot(x, y) 
plt.show() 

(注意,这里的plot语句也有变化)

详情

如果您在使用 numpy 时开始编写循环,请寻找其他方法。矢量运算可以比相应的 python 代码快得多(有时快几个数量级),这就是人们喜欢它的原因。许多基本操作(+、-、*、/、**) 甚至重载。查看“引用”部分中的最后一项以获取更多信息。

引用资料