1. А1. Алгоритм вычислений для заданного количества последовательных
приближений:
Для реализации этого алгоритма достаточно знать аналитическое описание функций f(x)
f'(x). Если описаниеf '(x) не дается в условии задачи, то его необходимо вывести
математически. Начальное приближение определяется подобно тому, как это было
сделано в методе хорд.
f (a)
(b a )
Шаг 1. Определение начального приближения х0: c a
f (b) f (a )
если f(c) x f(a)< 0, то x0=а иначе x0=b; i = 0.
f ( xi )
Шаг 2. Вычисляется хi по формуле xi 1 xi
.
f ( xi )
Шаг 3. Если i+1 = n то вычисленное решение х = хi. КОНЕЦ.
В противном случае i= i+1, затем возвращаемся к шагу 2.
А2. Алгоритм вычислений для заданной точности е:
В формуле оценки погрешности фигурируют значениям,M2 и m1 Если эти значения не
указаны в условии задачи, то их необходимо вычислить, проведя необходимые
математические выкладки. Кроме того, необходимы аналитические описания f(х) и f'(x).
f (a)
(b a )
Шаг 1. Определение начального приближения х0: c a
f (b) f (a )
если f(c) x f(a)< 0, то x0=а иначе x0=b; i = 0.
f ( xi )
Шаг 2. Вычисляется хi по формуле xi 1 xi
.
f ( xi )
M2
2
xi 1 xi
e то вычисленное решение х =xi КОНЕЦ.
Шаг 3. Если
2m1
В противном случае i= i+1, затем возвращаемся к шагу 2.
2. Пример 1: Пусть дана функция f(х) =х3 – 2x2 + х - 3. Требуется написать программу
вычисления решения уравнения f(х) =0 на отрезке [2; 15] для 10 последовательных
приближений методом Ньютона.
Предварительная математическая подготовка – определим f `(x) =Зх2 - 4х +1.
program cnlO;
var a, b, x, c : real;
i, n: integer;
function f(z :real) :real;
begin f:=z*z*z-2*z*z+z-3; end;
function fdl(z:real):real;
begin fdl:=3*z*z-4*z+1; end;
begin a:=2.1; b:=15; n:=10; i:=0;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then x:=a else x:=b;
while i<n do
begin i:=i+1;
x:=x-f(x)/fdl(x);
writeln('i=',i:2,' x=',x:15:12, ' f=',f (x):15:12);
end;
end.
x
. Требуется написать программу для
4
нахождения приближенного решения уравнения f(x)=0 на отрезке [2,4;3] с точностью
е=0,0001 методом Ньютона. Для данной функции на отрезке [2,4; 3] значения М 2 и m1
соответственно, равны 2 и 0,03.
1
Предварительная математическая подготовка; f `(x) = -sin(2x) - .
4
program cnll;
var a, b, xn, xv, M2, ml, e, c : real;
i, n: integer;
function f(z:real):real;
begin f:=cos(z)*cos(z)-z/4; end;
function fdl(z:real):real;
begin fdl:=-sin(2*z)-1/4; end;
begin
a:=2.4; b:=3; M2:=2; ml:=0.03; e:=0.0001;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then begin
xn:=a; xv:=b;
end
else begin xn:=b; xv:=a; end;
while M2*sqr(xn-xv)/(2*ml)>e do
begin xv:=xn;
xn:=xv-f(xv)/fdl(xv);
writeln( 'x=',xn:15:12, ' f=',f(xn):15:12);
end;
end.
Пример 2: Пусть дана функция f(х) = cos2 (х)-