2017-03-01 1 views
0

2 분법의 6 번 반복으로 sqrt (2)를 풀기 위해 이분법을 수행하는 프로그램을 작성해야합니다. 여기 내 코드가있다. 길을 따라 값을 인쇄 할 수 없으며 결국에는 값을 인쇄 할 수 없으며 그 이유를 모르겠습니다.sqrt (2)에 대한 이분법 방법 프로그램

import math 
>>> def f(x): 
    return (x**2)-2 

>>> def bisect (a,b,n): 
    while n < 6: 
     c=(a+b)/2 
    if f(c) == 0: 
     print [('Root is: ', c)] 
    elif f(a)*f(b) > 0: 
     b=c 
     n=(n+1) 
     print [('n: ',n,' c: ',c)] 
    else: 
     a=c 
     n=(n+1) 
     print [('n: ',n,' c: ',c)] 


>>> print bisect (0,1,0) 
SyntaxError: invalid syntax 
>>> print bisect (0,1,0): 

SyntaxError: invalid syntax 
>>> 

답변

0

즉시 두 가지 문제가 있습니다. 첫째, Python 3에서 인쇄 할 내용을 괄호로 묶어야합니다 (예 : print(bisect(0,1,0))). 이것이 구문 오류의 원인입니다. 둘째로, 들여 쓰기가 잘못되지 않는 한 bisect 함수는 n < 6 동안 반복되지만 n을 늘리지 않으므로 무한 루프로 시작됩니다.