Здравствуйте, Stgl, Вы писали:
S>Я делаю это так: инвариант цикла будет (P = P * x + A i) and (n — 1 >= i >= 0). Инвариант будет истинным перед каждой итерацией. Условие завершение цикла i < 0, что у нас в коде достигается. Так как инвариант и условие завершение цикла истинны, то наш код правильный. S>Здесь есть ошибки?
Инвариант записан как-то странно: P = P*x+Ai. Это что, уравнение такое? По переменной x? Поиск неподвижной точки?
Говоря о схеме Горнера, есть смысл перейти к последовательности многочленов
P(x) = SUMi=0..n ai*xi
P(x) = P0(x)
Pi(x) = Pi+1(x)*x + ai
Pn+1(x) = 0
ну, или начать с
Pn(x) = 0*x + an
или, соответственно, к последовательности значений bi этих многочленов для данного аргумента x
P(x) = b0
Pi(x) = bi = bi+1*x+ai
bn+1 = 0
bn = 0*x + an = an
Тогда надо будет лишь показать, что на i-й итерации цикла (где итерации нумеруются от n до 0 по убыванию) на входе bi+1, на выходе bi
В данном случае всё тривиально. Просто по определению.