Лабораторная работа №3
Тема: Разработка и реализация программ на языке “Паскаль” для решения трансцендентных уравнений с применением цикличных и условных операторов.
Цель: Составить программу для решения трансцендентного уравнения методом деления отрезка пополам.
Теоретические сведения
If – команда Если.
Then – команда То.
Else – команда Иначе.
Синтаксис If:Ifусловие Then операции 1 Elseоперации 2.
Repeat – команда Повтор.
Until – команда До.
Синтаксис Repeat-Until:Repeatтело цикла Until условие.
While – команда Пока.
Do – команда Делать.
Синтаксис While-Do:While условие Do тело цикла.
For – команда Повтор.
1ый Синтаксис For: Forначальное число переменной To тело цикла.
2ой Синтаксис For: Forначальное число переменной Downto тело цикла.
Задания
Написать прогу, которая решает трансцендентное уравнение ,
методом деления отрезка пополам.
Программа
Program Transcendentny_neravenstva_01;
Var XC,X1,X2,F1,F:real;
Const E=1E-05{solution to an approximation of E, usually from 1E-05 to 1E-03};
Begin
Write(' Beginning section of a isolation interval = ');readln(X1);
Write(' Ending section of a isolation interval = ');readln(X2);
F1:=4*sin(X1)-sqr(X1);F:=4*sin(X2)-sqr(X2);
If F1*F>0 then Write('Error isolation interval')else Begin
Repeat
F1:=4*sin(X1)-sqr(X1);XC:=(X1+X2)/2;F:=4*sin(XC)-sqr(XC);
If F1*F>0 then X1:=XC else X2:=XC
Until abs(F)<=E;
Write(' Argument= ',XC:2:10,' +- ',abs(X1-X2)/2:0:8);End;
Readln;End.
Работа программы
1. Запустить “Паскаль”.
2. Загрузить прогу “ Transcendentny_neravenstva ”, нажав F3 и выбрав прогу с именем
“Yravn_01.pas ”.
3. Измените, если есть необходимость, в разделе описания постоянных точность ответа E.
4. Запустить прогу на выполнение, нажав Ctrl + F9.
5.1. Когда появится строка “ Beginningsectionofaisolationinterval= ”, то наберите начало отрезка.
5.2. Когда появится строка “ Endingsectionofaisolationinterval= ”, то наберите конец отрезка.
6. Если отрезок не является интервалом изоляции, то появится сообщение “Errorisolation
interval”.
7. В остальных случаях на экране появится итог вычисления данной функции.
8. После просмотра итогов работы проги, чтобы выйти надо нажать клавишу “Enter”.
Вычисления
Предложенный промежуток является интервалом изоляции, т. к. функция
не имеет точек разрыва, а значения функций и имеют разные знаки. При вычеслении с точностью 10-5 X=1,93375 +- 3.81*10-6.
Я обнаружил ещё один интервал изоляции в близи 0 и, следовательно, X=0.
Вывод
В данной проге в разделе описания постоянных можно изменять точность решения и интервал изоляции. Чтобы проверить, является ли отрезок интервалом изоляции, я использовал условный оператор и при совпадении знака f(NX) и f(KX) программа выдаёт сообщение, “Errorisolationinterval” и прекращает свою работу без подвисания на цикле, т. к. условие выхода из него ни когда не было бы достигнуто. В ином случаи будет выполнятся цикл с постусловием достижения нужной точности ответа, то есть модуль f(XC) должен быть меньше E. В теле цикла отрезок делится по полам и определяется, в какой половине содержится интервал изоляции, путём определения знака f(X1) и f(XC) с применением условного оператора. Для удобства просмотра результатов в конце программы стоит пустой ввод и пока не будет нажата клавиша ”Enter” результаты ни куда не исчезнут.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.