для класса программирования нам нужно запрограммировать три метода для вычисления root математической функции, в приведенном ниже коде я использовал «метод деления пополам».
Кажется, что сам код работает уже.
Теперь я хочу получить этот код как функцию, чтобы я мог вводить границы, допустимое отклонение значения y, а также математическую функцию и ее переменную в качестве аргументов.
Но вставка, например, «2 * x + 1» в качестве математической функции и «x» в качестве переменной, конечно, не работает ... Я еще не очень знаком с python и не нашел решения в Интернете, поэтому далеко. Так может ты поможешь мне? :)
from math import *
# Bisection method
def Bisection ( a , b , y_tolerance , f , variable ) :
# Define function.
def f ( variable ) :
return f
# Mean for bisection.
mean = ( a + b ) / 2
# while-loop as long as y-value is bigger than wished tolerance.
while abs( f ( mean ) ) > 10 ** ( - ( y_tolerance ) ) :
# Recalculate mean for each iteration.
mean = ( a + b ) / 2
# If sign of y-values changes, cut interval in half from left.
if f ( mean ) * f ( b ) < 0 :
a = mean
# If sign of y-values doesn't change, cut interval in half from right.
elif f( mean ) * f ( b ) > 0 :
b = mean
# Print mean as approximation of the first root in the interval.
else :
print ( mean )
Bisection ( -1 , 0 , 2 * x + 1 , x )
Спасибо всем, кто готов мне помочь. :)