想到用二分法求解函数方程的解,初学者,求指正:有什么需要改进的地方
def f1(x):
return pow(x,2) - 3*x + 2
# 函数的表达形式
def f(a,b,c):
# a和b为区间长度,c为精确度
while b - a != c:
if f1(a) * f1((a + b)/2)> 0:
a = (a + b)/2
elif f1(a) * f1((a + b)/2) < 0:
b = (a + b)/2
else:
print (a + b )/2
# 具体二分法求解过程
f(0,5,0)
求问:1)为什么一直输出是2,
2)如何修改得到另一个解 1
초보자로서 최소한 언어의 기본과 기본 연산자를 먼저 이해해야 합니다. 여기서 나누기
/
는 정수 나누기이므로 두 정수를 나눌 때 둘 중 하나를 소수로 변환해야 합니다()./2.0
을 루프 조건으로 사용할 수 있고 무한 루프가 발생하지 않을 것이라고 확신하시나요?
b - a != c