我有以下
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]
uj5u.com熱心網友回復:
將代碼的最后兩行替換為:
L = [nraphson(y, dy, j, 10**-5, 100)[1] for j in guess]
print(L)
uj5u.com熱心網友回復:
如果您只想列印第二個值,請在最后的 for 回圈中:
for j in guess:
print(nraphson(y, dy, j, 10**-5, 100)[1])
在你的代碼進行列印結果的nraphson(y, dy, j, 10**-5, 100),這是有兩個元素的元組。要獲取第二個元素,只需使用[1].
如果您不想列印這些值但想用這些值創建一個串列,只需執行以下操作:
tuples = [nraphson(y, dy, j, 10**-5, 100) for j in guess]
second_nums = [t[1] for t in tuples]
uj5u.com熱心網友回復:
嘗試這個:
...
guess = range(-10,6)
result = [nraphson(y, dy, j, 10**-5, 100)[1] for j in guess]
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/317085.html
上一篇:如何計算字串中有多少個單詞?
