- •Лабораторная работа № 15
- •Теоретические сведения
- •Типовый вариант
- •Реализация типового варианта
- •Варианты исходных данных
- •Используя комбинированный метод, вычислить с заданной точностью ( ) действительные корни заданного алгебраического уравнения .
- •Решить задачу в различных средах: Fortrani, ms Excel и MathCad.
- •Комбинированный метод (Контрольные вопросы – правильные варианты)
Типовый вариант
Вычислить корни
уравнения
с точностью =10-5
на предварительно найденном интервале
изоляции [a, b].
Реализация типового варианта
Расчет в среде MathCad.
Введите текстовую информацию о работе и постановку задачи:
Введите справочную информацию о комбинированном методе:
Изолируйте интервалы, содержащие корни уравнения:
Создайте многострочную функцию вычисления корня комбинированным методом:
Определите корень уравнения с помощью пользовательской и стандартной функции:
Расчет в среде Microsoft Excel.
Запустите на выполнение среду программирования Microsoft Excel. По умолчанию создается новый документ. Сохраните документ на рабочий диск под уникальным именем:
Введите необходимую текстовую информацию для идентификации работы:
Внесите информацию о постановке задачи:
Для определения интервалов изоляции корней уравнения построим таблицу значений функции .
Выделим интервалы аргумента, на которых функция меняет знак – это интервалы изоляции корней уравнения. Постройте график исследуемой функции на основе таблицы, чтобы убедиться, что на выделенных интервалах кривая графика пересекает ось абсцисс:
Введите справочную информацию о методе:
Выберите один из интервалов изоляции корня уравнения. Проверьте расположение границы b, в которой будет применен метод касательных:
Постройте заголовок таблицы нахождения корня. Внесите начальное значение номера итерации и формулу для остальных номеров:
Внесите начальное значение границы интервала a:
Внесите начальное значение границы интервала b:
Введите формулу вычисления f(a):
Введите формулу вычисления f(b):
Введите формулу вычисления f(b):
Введите формулу изменения a :
Введите формулу изменения b :
Введите формулу условия прекращения итераций
:
Введите формулу нового значения a :
Введите формулу нового значения b :
Распространите формулы на нижнюю часть таблицы:
Расчеты можно проводить до строки, в которой условие в столбце I выполнится. Выведем окончательное значение корня уравнения:
Сравните результаты, полученные в других средах программирования.
Расчет в среде программирования Fortran.
Запустите на выполнение среду программирования Developer Studio.
Создайте проект Lab15_V1 приложения Windows, выполняющего задание.
В открывшемся следующем окне мастера выберите переключатель A simple Dialog based Application. Подтвердите выбранные опции, нажав Finish.
Ознакомьтесь с окончательной информацией о создаваемом проекте и нажмите на кнопку OK.
Мастер сгенерирует проект диалогового приложения, которое можно откомпилировать и запустить на выполнение. Создан ряд файлов, название которых основано на имени проекта.
Кроме того есть папка ресурсов проекта ResourceView, перейдя на которую можно отредактировать графические и строковые ресурсы проекта.
Двойной щелчок левой кнопки мыши по идентификатору диалоговой панели IDD_LAB15_V1_DIALOG приводит к открытию редактора диалога. Шаблон диалоговой панели по умолчанию содержит две командные кнопки Apply и Exit , метку с надписью посередине, строку заголовка с именем «Dialog Title» и с кнопкой завершения работы
.
Каждый элемент на панели (как и саму
панель) можно выделить левой кнопкой
мыши. При этом вокруг выделенного
элемента возникает рамка с габаритными
маркерами, «потянув» за которые левой
кнопкой мыши можно изменить габариты
текущего (выделенного) элемента. Кроме
того, для текущего элемента можно с
помощью контекстного меню (вызывается
правой кнопкой мыши над элементом)
вызвать панель свойств Properties
и посмотреть (или изменить) свойства
элемента.
Представим возможный финальный вид диалоговой панели, которая принимает от пользователя исходные данные и выводит результаты.
С помощью палитры компонентов Dialog добавьте на форму компоненты в соответствии с таблицей:
Компонент |
Инструмент |
Назначение |
Идентификатор |
Group Box 1 |
|
Контейнер ввода исходных данных |
|
Group Box 2 |
|
Контейнер вывода результатов расчета |
|
Edit Box 1 |
|
Окно ввода левой границы интервала a |
IDC_EDIT_A |
Edit Box 2 |
|
Окно ввода правой границы интервала b |
IDC_EDIT_B |
Edit Box 3 |
|
Окно ввода точности расчета |
IDC_EDIT_EPS |
Edit Box 4 |
|
Окно вывода корня уравнения |
IDC_EDIT_KOR |
Edit Box 5 |
|
Окно вывода количества итераций |
IDC_EDIT_ITER |
Static Text 1- Static Text 5 |
|
Соответствующие поясняющие метки |
|
В результате форма может выглядеть так:
Измените заголовки меток, формы и контейнеров группировки, а идентификаторы окон редактирования (см. таблицу п. 3.9), используя панель свойств Properties. Идентификаторы командных кнопок, меток и самой панели оставьте без изменений. Протестируйте внешний вид диалоговой панели с помощью инструмента
на палитре выравнивания.
Внесите изменения в исходный текст программы в соответствии с заданием варианта.
Введите в модуль Lab15_V1Globals (файл Lab15_V1Globals.f90 проекта) в качестве глобальных данных соответствующие переменные для исходных данных и результатов расчета. Связь между этими переменными и соответствующими окнами редактирования на диалоговой панели приложения будет осуществляться через одноименные строковые переменные с приставкой text_.
Отредактируйте файл Lab15_V1.f90. В теле главной функции приложения WinMain сразу за разделом объявлений передайте начальные данные от глобальных переменных исходных данных их соответствующим строкам.
Перед оператором запуска диалоговой панели в немодальном режиме передайте начальные значения исходных данных в окна редактирования с соответствующими идентификаторами.
Отредактируйте подпрограмму Lab15_V1Apply – обработчик сообщений кнопки «Финиш» (бывшая кнопка «Apply»). В начале этой процедуры объявите необходимые переменные. Часть объявлений уже создана мастером.
Далее в операторе обработки нажатия левой кнопки мыши (сообщение dlg_clicked) вместо комментария «TO DO» считайте с помощью функции dlgget из окон редактирования исходные данные в текстовые переменные и обменяйте данные между ними и расчетными переменными, применив оператор read.
Теперь вычислите приближенное значение корня уравнения методом половинного деления с заданной точностью.
В завершение обработки сообщения выведите значения результатов на диалоговую панель посредством буферных текстовых переменных.
После процедуры-обработчика сообщений поместите процедуры, вычисляющие заданную функцию, ее первую и вторую производные.
Компилируйте проект и запустите на выполнение с помощью команды меню Build | Execute (Ctrl+F5). Появится диалоговое окно приложения.
Нажмите на кнопку Старт. Результаты расчета появятся в соответствующих окнах панели приложения.
Проанализируйте результаты расчета, они должны совпадать с результатами в других средах программирования с заданной точностью (пять знаков после десятичной точки) и с помощью других методов. Обратите внимание на эффективность комбинированного метода, показателем которой является количество затраченных итераций приближения к корню. Комбинированный метод является одним из самых эффективных методов приближенного вычисления корня уравнения. Нажмите кнопку Финиш для завершения приложения и оформите отчет о работе.
