파이썬에서 내장 함수가 아닌 보간법을 사용하여 주어진 시간 간격으로 함수의 루트를 얻으려고합니다.파이썬 보간 오류
나는 다음을 수행했는데 내가 어디로 잘못 가고 있는지 알지 못한다. 나는 이등분으로 끝냈다. 유일한 차이점은 테스트 포인트 일 것이다.
X1 및 X2는 간격의 양단이며, f는 함수이고, ε는 F = 죄 (X^2)는 단순히 다음과 같이 진동 (100)의 반복을 반환하여이 실행 허용
def interpolation (x1,x2,f,epsilon):
i = 1
n = 100
while i<n:
m = (f(x2)- f(x1))/(x2-x1)
b = f(x2) - m*(x2)
p = b
print (i,p,f(p))
if f(p) == 0 or b< epsilon:
print ('The root is at ',p,'after',i,'iterations')
break
i+= 1
if f(x1)*f(p) > 0: #Equal signs
x1 = p
else:
x2 = p
이다 :
코드는 경우
(80, 1.3266674970489443, 0.98214554271216425)
(81, 1.4900968376899661, 0.79633049173817871)
(82, 1.3266674970489443, 0.98214554271216425)
(83, 1.4900968376899661, 0.79633049173817871)
관련 없음 : 'i
phihag
"나는 다음과 같은 일을했으며 어디에서 잘못 될지 모릅니다." 적어도 코드의 동작에 어떤 문제가 있다고 말할 수 있습니까? – Marcin
감사합니다. – user1778543