Метод хорд и метод половинного деления для поиска корней уравнения

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/env python
# -*- coding: utf-8 -*-
a = 1.0; b = 100.0; e = 0.01
def f(x):
return 10*x-2*x*x
y1 = f(a); y2 = f(b)
if y1 * y2 >= 0:
print 'нету корней'
else:
n = 1
#c = (a+b)/2
c = (y2*a - y1*b)/(y2 - y1);
y3 = f(c)
while (abs(y3) > e):
#c = (a+b)/2
c = (y2*a - y1*b)/(y2 - y1);
y3 = f(c)
if y1 * y3 < 0:
b = c
else:
a = c
n += 1
print "c=%15.10f y3=%15.10f n=%15.10f" % (c, y3, n)