【发布时间】:2020-07-20 23:50:40
【问题描述】:
我是 Python 初学者,但我对这项任务有疑问:
- 编写一个使用定点迭代查找用户数学函数根的函数。
- 使用此函数查找以下的根:
x^3 + x - 1。 - 绘制根近似与迭代算法步数的关系图。
这是我第一次使用 Python,所以我真的需要帮助。这是我的代码,但它不起作用:
import math
import matplotlib.pyplot as plt
import numpy as np
def fixedp (function, x0, min = 0.001, max = 100):
i = 0
e = 1
xp = []
while (e > min and i < max):
x = function(x0)
e = norm(x0 - x)
x0 = x
xp.append(x0)
i = i + 1
return x, xp
fx = input("Wrote function : ")
function = lambda x: eval(fx)
x_start = 0.5
xf,xp = fixedp(function, x_start)
x = linspace(0,2,100)
y = function(x)
plot(x, y, xp, function(xp), 'bo', x_start, f(x_start), 'ro', xf, f(xf), 'go', x, x, 'k')
show()
【问题讨论】:
-
为什么它不起作用?你调试过吗?也许给我们一个输入和预期输出?
-
i = 0 IndentationError: expected an indented block.我不知道怎么解决 -
这是因为在此之后您没有
:。我建议使用一些文本编辑器来帮助您识别此类错误。 Pycharm、Noteped++ 或 Sublime 都很棒 -
你也应该知道具体
x^3 + x - 1不会收敛。 -
我知道,但我不知道该怎么办。我在一段时间后写了
:,但i = 0也有同样的错误
标签: python algorithm math iteration fixed-point-iteration