我有以下几点
import math
import matplotlib.pyplot as plt
def nraphson(fn, dfn, x, tol, maxiter):
for i in range(maxiter):
xnew = x - fn(x)/dfn(x)
if abs(xnew - x) < tol: break
x = xnew
return xnew, i
y = lambda x: math.exp(x) - x**2
dy = lambda x: math.exp(x) - 2*x
x, n = nraphson(y, dy, j, 10**-5, 100)
guess = range(-10,6)
for j in guess:
print(nraphson(y, dy, j, 10**-5, 100))
我的输出是
(-0.7034674225098828, 6)
(-0.7034674224990228, 6)
(-0.7034674224984084, 6)
(-0.7034674224983918, 6)
(-0.7034674224983917, 6)
(-0.703467422509882, 5)
(-0.7034674224984084, 5)
(-0.7034674224983917, 5)
(-0.7034674224984067, 4)
(-0.7034674224983924, 3)
(-0.7034674224983924, 4)
(-0.7034674224983917, 5)
(-0.7034674224983917, 6)
(-0.7034674224983917, 6)
(-0.7034674224984245, 8)
(-0.7034674224983917, 10)
我试图从我的输出中分离出第二个数字,以形成一个列表或数组,以便我们绘制一个图形,我如何调整我的代码,以便给我一个如下所示的列表或数组
[6, 6, 6, 6, 6, 5, 5, 5, 4, 3, 4, 5, 6, 6, 8, 10]
如果您只想打印第二个值,请在末尾的for循环中:
在代码中,您正在打印
nraphson(y, dy, j, 10**-5, 100)
的结果,这是一个包含两个元素的元组。要获取第二个元素,只需使用[1]
访问它如果不想打印这些值,但想创建一个包含这些值的列表,只需执行以下操作:
将代码的最后两行替换为:
试试这个:
相关问题 更多 >
编程相关推荐