- •Лабораторная работа № 14
- •Теоретические сведения
- •Типовый вариант
- •Реализация типового варианта
- •Варианты исходных данных
- •Лабораторная работа № 14
- •Уравнений методом половинного деления
- •Постановка задачи
- •Используя метод половинного деления, вычислить с заданной точностью ( ) действительные корни заданного алгебраического уравнения .
- •Решить задачу в различных средах: Fortran, ms Excel и MathCad. Вариант №1
- •Содержание работы
- •Метод половинного деления (Контрольные вопросы – правильные варианты)
Реализация типового варианта
Расчет в среде MathCad.
Введите текстовую информацию о работе и постановку задачи:
Изолируйте интервалы, содержащие корни уравнения:
Создайте многострочную функцию вычисления корня методом половинного деления:
Определите корень уравнения с помощью пользовательской и стандартной функции:
Расчет в среде Microsoft Excel.
Запустите на выполнение среду программирования Microsoft Excel. По умолчанию создается новый документ. Сохраните документ на рабочий диск под уникальным именем:
Введите необходимую текстовую информацию для идентификации работы:
Внесите информацию о постановке задачи:
Для определения интервалов изоляции корней уравнения построим таблицу значений функции . Внесем начальное значение x и формулу для остальных значений абсциссы. Распространите формулу на всю таблицу:
Введите и распространите формулу значений функции :
Выделим интервалы аргумента, на которых функция меняет знак – это интервалы изоляции корней уравнения:
Постройте график исследуемой функции на основе таблицы, чтобы убедиться, что на выделенных интервалах кривая графика пересекает ось абсцисс:
Выберите один из интервалов изоляции корня уравнения. Постройте заголовок таблицы нахождения корня. Внесите начальные значения границ интервала a и b, формулу определения середины интервала c:
Введите формулу вычисления f(a):
Введите формулу вычисления f(b):
Введите формулу вычисления f(c):
Введите формулу условия прекращения итераций
:
Для вставки условного оператора в ячейку A39 для определения нового значения левого интервала изоляции корня a воспользуйтесь мастером стандартных функций:
В диалоговой панели мастера выберите категорию функции, имя функции, ознакомьтесь с описаним функции и нажмите ОК:
Мастер предлагает ввести аргументы функции. Воспользуйтесь мастерами вставки аргументов в правой части окон редактирования:
В результате функция будет вставлена и вычислена:
Аналогично вставьте формулу для вычисления нового значения правой границы b:
Распространите формулы на нижнюю часть таблицы:
Расчеты можно проводить до строки, в которой условие в столбце G выполнится:
Выведем окончательное значение корня уравнения:
Сравните результаты, полученные в других средах программирования.
Расчет в среде программирования Fortran.
Запустите на выполнение среду программирования Developer Studio.
Создайте проект Lab14_V1 приложения Windows, выполняющего задание.
В открывшемся следующем окне мастера выберите переключатель A simple Dialog based Application. Подтвердите выбранные опции, нажав Finish.
Ознакомьтесь с окончательной информацией о создаваемом проекте и нажмите на кнопку OK.
Мастер сгенерирует проект диалогового приложения, которое можно откомпилировать и запустить на выполнение. Создан ряд файлов, название которых основано на имени проекта.
Кроме того есть папка ресурсов проекта ResourceView, перейдя на которую можно отредактировать графические и строковые ресурсы проекта.
Двойной щелчок левой кнопки мыши по идентификатору диалоговой панели IDD_LAB14_V1_DIALOG приводит к открытию редактора диалога. Шаблон диалоговой панели по умолчанию содержит две командные кнопки Apply и Exit , метку с надписью посередине, строку заголовка с именем «Dialog Title» и с кнопкой завершения работы
.
Представим возможный финальный вид диалоговой панели, которая принимает от пользователя исходные данные и выводит результаты.
С помощью палитры компонентов 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. Идентификаторы командных кнопок, меток и самой панели оставьте без изменений.
Внесите изменения в исходный текст программы в соответствии с заданием варианта.
Введите в модуль Lab14_V1Globals (файл Lab14_V1Globals.f90 проекта) в качестве глобальных данных соответствующие переменные для исходных данных и результатов расчета. Связь между этими переменными и соответствующими окнами редактирования на диалоговой панели приложения будет осуществляться через одноименные строковые переменные с приставкой text_.
Отредактируйте файл Lab14_V1.f90. В теле главной функции приложения WinMain сразу за разделом объявлений передайте начальные данные от глобальных переменных исходных данных их соответствующим строкам.
Перед оператором запуска диалоговой панели в немодальном режиме передайте начальные значения исходных данных в окна редактирования с соответствующими идентификаторами.
Отредактируйте подпрограмму Lab14_V1Apply – обработчик сообщений кнопки «Финиш» (бывшая кнопка «Apply»). В начале этой процедуры объявите необходимые переменные. Часть объявлений уже создана мастером.
Далее в операторе обработки нажатия левой кнопки мыши (сообщение dlg_clicked) вместо комментария «TO DO» считайте с помощью функции dlgget из окон редактирования исходные данные в текстовые переменные и обменяйте данные между ними и расчетными переменными, применив оператор read.
Теперь вычислите приближенное значение корня уравнения методом половинного деления с заданной точностью.
В завершение обработки сообщения выведите значения результатов на диалоговую панель посредством буферных текстовых переменных.
После процедуры-обработчика сообщений поместите заданную функцию.
Откомпилируйте проект и запустите на выполнение с помощью команды меню Build | Execute. Появится диалоговое окно приложения.
Нажмите на кнопку Старт. Результаты расчета появятся в соответствующих окнах панели приложения.
Проанализируйте результаты расчета, они должны совпадать с результатами в других средах программирования и с помощью других методов. Нажмите кнопку Стоп для завершения приложения и оформите отчет о работе.
