Рис.5 Входные параметры (a,b,e)
Из двух отрезков [a; x0] и [x0, b] выберем тот, на концах которого функция f(x) имеет противоположные знаки (т.е. отрезок, содержащий корень уравнения). Проведя секущую на новом отрезке [a; b], получим второе приближение корня x2. Процесс вычисления приближений по формуле (3) продолжаем до выполнения неравенства xn+1 - xn <= E.
Схема алгоритма уточнения корня уравнения методом хорд приведена на рис. 5.
В схеме алгоритма:
2 - вычисление значений функции f(a) и f(b);
присвоение начального значения a текущему приближению корня x;
3 - запоминание предыдущего приближения корня x в переменной u;
вычисление очередного приближения корня x по формуле (2);
4 - проверка условия f(x) = 0. Если условие выполняется, то x - корень уравнения, - выход из алгоритма;
5-7 - определение нового отрезка [a; b], содержащего корень, значение y присваивается переменным z или t в зависимости от того, какая граница a или b сдвигается в точку x;
8 - проверка условия окончания вычисления корня.
Блок-схема алгоритма решения задачи
Программа решения задачи
PROGRAM KURS;
VAR
A:ARRAY [1..3] OF REAL;
B:ARRAY [1..2] OF REAL;
X,H,E,XK:REAL;
N,I,J:BYTE;
{Заданная функция}
FUNCTION F(A1,B1,X:REAL):REAL;
BEGIN
F:=X-B1/(A1+SIN(X))
END;
{Процедура уточнения корней}
PROCEDURE KOR(A,B,MIN,MAX,E:REAL;VAR N:BYTE;VAR K:REAL);
VAR
X,Y,X1,X2,Y1,Y2:REAL;
BEGIN
X1:=MIN;
X2:=MAX;
Y1:=F(A,B,MIN);
Y2:=F(A,B,MAX);
N:=0;
REPEAT
X:=(X1+X2)/2;
Y:=F(A,B,X);
IF Y1*Y<0
THEN BEGIN
Y2:=Y;
X2:=X
END
ELSE BEGIN
Y1:=Y;
X1:=X
END;
N:=N+1;
UNTIL (ABS(X1-X2)<E)OR(N=100);
IF N<>100
THEN K:=X
END;
{Основная программа}
BEGIN
FOR I:=1 TO 3 DO
BEGIN
WRITE('Введите A',I,'=');
READLN(A[I])
END;
WRITE('Введите B1=');
READLN(B[1]);
WRITE('Введите B2=');
READLN(B[2]);
WRITE('Введите погpешность ');
READLN(E);
WRITE('Введите шаг ');
READLN(H);
{Отделение корней}
FOR I:=1 TO 3 DO
FOR J:=1 TO 2 DO
BEGIN
X:=0;
REPEAT
IF F(A[I],B[J],X)*F(A[I],B[J],X+H)<0
THEN BEGIN
KOR(A[I],B[J],X,X+H,E,N,XK);
IF N=100
THEN WRITELN(' ')
ELSE WRITELN('Корень: ',XK:6:4,' Число итераций = ',N,' при А=',a[i]:3:1,' и B=',b[j]:3:2 )
END;
X:=X+H
UNTIL X>6.5
END;
END.
Результаты вычисления по программе
Введите A1=1.6
Введите A2=1.7
Введите A3=1.8
Введите B1=5.0
Введите B2=5.1
Введите погpешность 1E-3
Введите шаг 0.1
Корень: 1.9883 Число итераций = 7 при А=1.6 и B=5.00
Корень: 3.1586 Число итераций = 7 при А=1.6 и B=5.00
Корень: 5.5164 Число итераций = 7 при А=1.6 и B=5.00
Корень: 2.0508 Число итераций = 7 при А=1.6 и B=5.10
Корень: 3.0930 Число итераций = 7 при А=1.6 и B=5.10
Корень: 5.5367 Число итераций = 7 при А=1.6 и B=5.10
Корень: 1.8867 Число итераций = 7 при А=1.7 и B=5.00
Корень: 3.3508 Число итераций = 7 при А=1.7 и B=5.00
Корень: 5.3977 Число итераций = 7 при А=1.7 и B=5.00
Корень: 1.9367 Число итераций = 7 при А=1.7 и B=5.10
Корень: 3.2945 Число итераций = 7 при А=1.7 и B=5.10
Корень: 5.4211 Число итераций = 7 при А=1.7 и B=5.10
Корень: 1.8023 Число итераций = 7 при А=1.8 и B=5.00
Корень: 3.5398 Число итераций = 7 при А=1.8 и B=5.00
Корень: 5.2664 Число итераций = 7 при А=1.8 и B=5.00
Корень: 1.8461 Число итераций = 7 при А=1.8 и B=5.10
Корень: 3.4852 Число итераций = 7 при А=1.8 и B=5.10
Корень: 5.2930 Число итераций = 7 при А=1.8 и B=5.10
Краткие выводы по решению задачи
В данной курсовой работе очень широко используются подпрограммы (подпрограммы и функции), это позволяет сократить размер программы и сделать её более понятной для пользователя. Такой способ значительно упрощает вычисление промежуточных значений. Программа построенная по данному алгоритму наиболее оптимально использует возможности ПЭВМ. Рабочий интерфейс разработан в соответсвии с заданием на курсовую работу, что облегчает просмотр результатов выполнения программы. Вся практическая работа была выполнена в соответствии с рекомендациями изложенными в теоретической части курсовой работы.
Графическое решение решение задачи доказывает то, что программа работает правильно
Графическое решение задачи
Список используемой литературы
1. Новичков В. С., Парфилова Н. И. “Алгоритмические языки в техникуме. Паскаль”, Москва, Высшая школа, 1994 год.
2. Киселёв А. В. Коротаев А. Т. “Практическая работа на персональном компьютере”, Москва, 1995 год.
3. Фигурнов В. Э.” IBM PC для пользователя ”, Москва, Финансы и статистика, 1991 год.
4. Фаронов В. В. “ Програмирование на персоональных ЭВМ в среде Турбо-Паскаль “, Москва, Изд-во МГТУ, 1991 год.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.