Я пишу программу на питоне, которая будет решать нули, используя метод Ньютона. Я закончил писать черновую версию, затем понял несколько разных вещей и задался вопросом, нужно ли мне это исправить/изменить. (знание предмета может помочь)
def main():
dir(sympy)
print ("NEWTONS METHOD")
print ("Write your expression in terms of 'x' ")
e = sympy.sympify(raw_input("input expression here: "))
f = sympy.Symbol('x')
func1 = e
func1d = sympy.diff(e,f)
print ("the dirivative of your function = "), func1d
x = input("number to substitude for x: ")
func1sub = func1.subs({'x':x})
func1dsub = func1d.subs({'x':x})
n = x - float(func1sub/func1dsub)
while n != x:
func1sub = func1.subs({'x':x})
func1dsub = func1d.subs({'x':x})
n = x - float(func1sub/func1dsub)
print n
main()
1) Ну, во-первых, мне было интересно, поскольку значения n
и x
могут не всегда быть точно такими же, мне пришлось бы округлять, используя функцию округления.
2) Посмотрев на это, я чувствую, что мой цикл while не решает того, что он должен решать, он должен решать, что такое x
, что вы можете подключить к x
в функции, и вывод будет x
. Могу ли я сделать это, добавив значения в массив, а затем увидев, где они являются кратными экземплярами одного числа?