Информатика. Часть 2 • Лекций – 6 часов Экзамен

advertisement
Информатика. Часть 2
• Лекций – 6 часов
• Лабораторных работ – 8 часов
Экзамен
Применение численных методов при
моделировании ХТП. Отделение корней
уравнения. Метод «бисекций».
Общие сведенья
•
•
•
•
f ( x ) = 0.
f (x) =а0xn + а1хn-1 + ... + аn =0.
х3 + х2 + 2х = 0.
f()=0
Отделение корней
• f (x) = 1(x) – 2(x) = 0
• 1(x) = 2(x)
• y1=1(x); y2=2(x)
• f(x)= x∙lgx – 1 = 0
• y1 = lg x и y2 = 1/x
Метод деления отрезка пополам
(метод бисекций)
x  6x  2  0
3
•
•
•
•
•
•
•
•
[–3, –1]
=0.1
f(–3)= –27+18+2= –7; f(–1)= –1+6+2=+7
(–3, –1)/2= –2
f(–2)= –8+12+2=6
(–3–2)/2= –2.5
[–3,–2.5]
(–3–2.5)/2= –2.75
[–2,75,–2,5]
(–2.75–2.5)/2= –2.625
[–2.625, –2.5]
(–2.625–2.5)/2=–2.536
|b–a| 
0.062<0.1
Программа решения уравнений методом деления отрезка пополам.
Задание: решить уравнение ex - 10x = 0.
PROGRAM del;
LABEL 1,2;
VAR a, b, x0, eps, r1, r2: Real;
k: Integer;
FUNCTION f(x:real): Real; { Исследуемая функция }
BEGIN
f:=exp(x)-(10*x);
END;
BEGIN
read(a,b,eps);
k:=0; 1:k:=k+1;
x0:=(a+b)/2;
IF f(x0)=0 THEN GOTO 2;
IF abs(b-a)<eps THEN GOTO 2;
r1:=f(x0);
r2:=f(a);
IF (r1*r2)<0 THEN b:=x0
ELSE a:=x0;
GOTO 1;
2:writeln(X0:5:2);
END.
Метод Ньютона (метод касательных)
Пусть функция f(x) имеет первую и вторую
производные на отрезке [a, b], причем выполнено
условие знакопеременности функции f(a)f(b)<0, а
производные f '(x), f ''(x) сохраняют знак на отрезке
[a, b]. Тогда, исходя из начального приближения
x0[a, b], удовлетворяющего неравенству
f(x)f "(x)>0, можно построить итерационную
последовательность
xn 1  xn
f ( xn )
, n  0,1, 2...,
/
f ( xn )
В данном методе процесс итераций состоит в том,
что в качестве приближений к корню принимаются
значения x0, x1 ,x2... точек пересечения касательной
к кривой y = f(x) с осью абсцисс. То есть,
геометрически метод Ньютона эквивалентен замене
небольшой дуги кривой y = f(x) касательной. При
этом не обязательно задавать отрезок [a, b],
содержащий корень уравнения, а достаточно лишь
найти некоторое начальное приближение корня
х = х0
f ( x)  5x3  20 x 2  55x  150  0.
•
•
[4, 6] =0.001
f’(x)=15x2 – 40x – 55; f’’(x)=30x – 40
x=4 f(4)= – 70; f(4)=80;
x=6 f(6)=180; f(6)=140.
1. x1 = x0 – f(x0)/f '(x0); f(6) = 180; f(6)=245;
x1 = 6 – 180/245=5.2653;
2. f(5.265) = 35.8; f ' (5.265)=150.2;
x2 = 5.265 – 35.8/150.2=5.027;
3. f(5.027) = 3.281; f(5.027)=123;
x3 = 5.027 – 3.281/123=5.0003;
4. f(5.0003)=0.0394; f ' (5.0003)=120;
x4 = 5.0003 – 0.0394/120=5.000.
x3- 2x2 + 1.3x = 0
PROGRAM newton;
LABEL m1, m2;
VAR x, x0, eps:real;
k:integer;
FUNCTION f(x0:real):real;
BEGIN
f:=x*x*x-2*x*x+1.3*x-0.2;
END;
FUNCTION f1(x0:real):real;
BEGIN
f1:=3*x*x-4*x+1.3;
END;
BEGIN
read(x0,eps);
k:=0;
m2: x:=x0;
x0:=x-f(x)/f1(x);
k:=k+1;
IF abs(x-x0) <= eps THEN GOTO m1
ELSE GOTO m2;
m1:
writeln('корень уравнения',x);
END.
Download