Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Численные методы в программировании

Численные методы и программирование, Колдаев В.Д., 2009

Численные методы и программирование, Колдаев В.Д., 2009.

Предложен широкий круг алгоритмов, сгруппированных по темам, для решения типичных задач, встречающихся в инженерных расчетах численными методами. Прикладная направленность отличает пособие от большинства учебников по численным методам, в которых, как правило, изложение ограничивается только теорией. Описание методов ориентировано на конкретную реализацию соответствующих алгоритмов на ПЭВМ. Пособие содержит большое количество заданий для самостоятельного решения. Даны рекомендации методологического плана по изучению тем в рамках курса математического моделирования.
Для студентов, обучающихся по направлению и специальностям программного обеспечения вычислительной техники и автоматизированных систем, прикладной математики и обработки информации, будет полезно широкому кругу специалистов по компьютерному моделированию.

Компьютерное моделирование.
Основной задачей процесса моделирования является выбор наиболее адекватной к оригиналу модели и перенос результатов исследования на оригинал.
В настоящее время компьютерное моделирование в научных и практических исследованиях является одним из основных инструментов познания.

Компьютерное моделирование начинается как обычно с объекта изучения, в качестве которого могут выступать явления, процесс, предметная область, жизненные ситуации, задачи. После определения объекта изучения строится модель. При построении модели выделяют основные, доминирующие факторы, отбрасывая второстепенные. Выделенные факторы перекладывают на понятный машине язык, разрабатывают алгоритм и программу.

Когда программа готова, проводят компьютерный эксперимент и анализ полученных результатов моделирования при вариации модельных параметров. И уже в зависимости от этих выводов делают нужные коррекции на одном из этапов моделирования: либо уточняют модель, либо алгоритм, либо, точнее, более корректнее определяют объект изучения.

Оглавление
Введение
Глава 1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ПО ИНФОРМАТИКЕ
1.1. Основные понятия вычислительной математики
1.2. Модели объектов и процессов
1.3. Типы моделей
1.3.1. Классификация моделей
1.4. Этапы моделирования
1.5. Компьютерное моделирование
1.6. Имитационное моделирование
1.7. Полное построение алгоритма
1.7.1. Эффективность программ
1.8. Главные принципы, лежащие в основе создания эффективных алгоритмов
1.9. Источники и классификация погрешностей
1.9.1. Понятия о погрешности машинных вычислений
1.10. Абсолютная и относительная погрешности
1.11. Погрешности решения задачи на ПЭВМ
1.11.1. Ошибки усечения
1.11.2. Ошибки распространения
1.11.3. Ошибки округления
Глава 2. ЧИСЛЕННЫЕ МЕТОДЫ
2.1. Элементарные функции и их свойства
2.1.1. Применение графиков в решении уравнений
2.2. Матрицы
2.3. Алгебраические уравнения
2.3.1. Уравнения с одним и двумя неизвестными
2.3.2. Численные методы решения уравнений
2.4. Ряды
2.5. Системы уравнений
2.5.1. Матричный метод
2.5.2. Метод Гаусса
2.5.3. Метод Жордана — Гаусса
2.5.4. Метод Крамера
2.6. Дифференциальные уравнения
2.6.1. Численное решение дифференциального уравнения
2.7. Аппроксимация
2.7.1. Метод конечных элементов
2.8. Интерполяция и экстраполяция
2.8.1. Интерполяционный многочлен Лагранжа
2.8.2. Использование электронных таблиц
2.9. Численное интегрирование
2.9.1. Метод прямоугольников
2.9.2. Метод трапеций
2.9.3. Метод Монте-Карло
2.9.4. Метод Симпсона
2.10. Математическая статистика
2.10.1. Вычисление средних
2.10.2. Числовые характеристики случайных величин
2.10.3. Метод середины квадрата
2.10.4. Линейный конгруэнтный метод
2.10.5. Полярный метод
2.11. Линейное программирование
2.11.1. Общий случай задачи оптимизации
2.11.2. Решение задачи линейного программирования
2.11.3. Симплекс-метод
2.12. Пакет Mathcad
2.12.1. Примеры выполнения расчетов в пакете Mathcad
2.13. Реализация численных методов на языке C++
Глава 3. ПРАКТИКУМ ПО ЧИСЛЕННЫМ МЕТОДАМ
Заключение
Литература
Приложение 1. Справочная информация по математике
Приложение 2. Решение математических задач в среде Excel
Приложение 3. Вычислительные алгоритмы
Приложение 4. Глоссарий.

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Численные методы и программирование, Колдаев В.Д., 2009 — fileskachat.com, быстрое и бесплатное скачивание.

Скачать djvu
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

Численные методы

1. Численные методы

Численные методы являются одним из мощных математических средств решения задачи. Простейшие численные методы мы используем всюду, например» извлекая квадратный корень на листке бумаги. Есть задачи, где без достаточно сложных численных методов не удалось бы получить ответа; классический пример—открытие Нептуна по аномалиям движения Урана.

В современной физике таких задач много- Более того, часто требуется выполнить огромное число действий за короткое время, иначе ответ будет не нужен. Например, суточный прогноз погоды должен быть вычислен за несколько часов; коррекцию траектории ракеты надо рассчитать за несколько минут (напомним, что для расчета орбиты Нептуна Леверье потребовалось полгода); режим работы прокатного стана должен исправляться за секунды. Это немыслимо без мощных ЭВМ, выполняющих тысячи или даже миллионы операций в секунду.

Современные численные методы и мощные ЭВМ дали возможность решать такие задачи, о которых полвека назад могли только мечтать. Но применять численные методы далеко не просто. Цифровые ЭВМ умеют выполнять только арифметические действия и логические операции. Поэтому помимо разработки математической модели, требуется еще разработка алгоритма, сводящего все вычисления к последовательности арифметических и логических действий. Выбирать модель и алгоритм надо с учетом скорости и объема памяти ЭВМ: чересчур сложная модель может оказаться машине не под силу, а слишком простая — не даст физической точности.

Сам алгоритм и программа для ЭВМ должны быть тщательно проверены. Даже проверка программы нелегка, о чем свидетельствует популярное утверждение: «В любой сколь угодно малой программе есть, по меньшей мере, одна ошибка». Проверка алгоритма еще более трудна, ибо для сложных алгоритмов не часто удается доказать сходимость классическими методами. Приходится использовать более или менее надежные «экспериментальные» проверки, проводя пробные расчеты на ЭВМ и анализируя их.

Строгое математическое обоснование алгоритма редко бывает исчерпывающим исследованием. Например, большинство доказательств сходимости итерационных процессов справедливо только при точном выполнении всех вычислений; практически же число сохраняемых десятичных знаков редко происходит 5 — 6 при «ручных» вычислениях и 10—12 при вычислениях на ЭВМ. Плохо поддаются теоретическому исследованию «маленькие хитрости» — незначительные на первый взгляд детали алгоритма, сильно влияющие на его эффективность. Поэтому окончательную оценку метода можно дать только после опробования его в практических расчетах.

К чему приводит пренебрежение этими правилами — видно из принципа некомпетентности Питера: «ЭВМ многократно увеличивает некомпетентность вычислителя».

Для сложных задач разработка численных методов и составление программ для ЭВМ очень трудоемки и занимают от нескольких недель до нескольких лет. Стоимость комплекса отлаженных программ нередко сравнима со стоимостью экспериментальной физической установки. Зато проведение отдельного расчета по такому комплексу много быстрей и дешевле, чем проведение отдельного эксперимента. Такие комплексы позволяют подбирать оптимальные параметры исследуемых конструкций, что не под силу эксперименту.

Однако численные методы не всесильны. Они не отменяют все остальные математические методы. Начиная исследовать проблему, целесообразно использовать простейшие модели, аналитические методы и прикидки. И только разобравшись в основных чертах явления, надо переходить к полной модели и сложным численным методам; даже в этом случае численные методы выгодно применять в комбинации с точными и приближенными аналитическими методами.

Современный физик или инженер-конструктор для успешной работы должен одинаково хорошо владеть и «классическими» методами, и численными методами математики.

2. Турбо Паскаль

Язык Паскаль с момента своего создания Н. Виртом в 1971 году играет особую роль и в практическом программировании, и в его изучении. С непревзойденной четкостью в нем реализованы принципы структурного программирования. Паскаль стал первым языком, с которым знакомиться большинство будущих программистов.

Трансляторы для программ, написанных на Паскале, разработаны для различных компьютеров и в настоящее время имеют множество разновидностей. Они являются компиляторами, обрабатывающие разработанные программистами тексты программ.

Схематически программа представляется в виде последовательности восьми разделов:

1. Заголовок программы

2. Описание внешних модулей, процедур и функций

3. Описание меток

4. Описание констант

5. Описание типов переменных

6. Описание переменных

7. Описание функций и процедур

8. Раздел операторов

Разработка программы по схеме алгоритма

При разработке программы в данной работе используются следующие операторы и стандартные процедуры:

Program — Заголовок программы

Читать еще:  Построить математическую модель задачи линейного программирования

Uses – раздел подключения модулей

Begin – открывающая логическая скобка

End – закрывающая логическая скобка

Crt — (Cathod ray tube — электронно-лучевая трубка) один из наиболее часто используемых модулей. Он содержит процедуры обслуживания процессов вывода информации на экран, ввода с клавиатуры, а также процедуры и функции вывода звуковых сигналов, работы с окнами на экране и вывода цветных текстовых строк на экран.

Graph – графический модуль для вывода базовых графических элементов, таких как точки, отрезки прямых линий, дуги и целые окружности и других графических элементов, называемых графическими примитивами

Var – раздел описания переменных

Writeln, Write – операторы вывода информации

Readln, Read – операторы ввода информации

If then – оператор условного перехода

For := to do – оператор цикла с параметром

Repeat until — оператор цикла с постусловием

Clrscr – очистка экрана

Initgraph – процедура инициализации графического режима

Closegraph – процедура закрытия графического режима

Line (x1, y1, x2, y2) – соединение двух точек отрезком

Putpixel (x, y, c) – построение точки (x, y) цветом с

Readkey – оператор считывание кода клавиш

Outtextxy (x, y, st) – вывод строки st, начиная с точки (x,y)

Getmaxx – результатом этой функции будет max значение x в данном видеорежиме

Goto – перейти к

+ — арифметическая операция сложения

— — арифметическая операция вычитания

* — арифметическая операция умножения

/ — арифметическая операция деления

Описание переменных и констант используемых в алгоритме

n – количество узлов в таблице, не считая начальную точку ;

— значения узлов записанных в одномерные массивы;

D – переменная, используемая для нахождения значения полинома Ньютона в этой точке;

L – переменная значения полинома Ньютона

k, step – константы используемые для построения графика полинома;

u – переменная шага деления графика;

Для описания алгоритма в данной курсовой работе были пронумерованы символы.

Инструкция пользования программой

Для запуска программы необходимо дважды щелкнуть на ярлыке с именем Niton.exe. После этого на экран будет выведен титульный лист. Чтобы продолжить надо нажать клавишу Enter.

Следующим шагом в окне программы будет показана строка с текстом «Показать пояснения к программе (1/0)?», чтобы увидеть их следует нажать 1 и подтвердить ввод нажатием клавиши Enter. Чтобы продолжить надо нажать клавишу Enter. Сразу после этого в диалоговом окне появится строка «Введите количество уpлов n (N=n+1)», где нужно указать количество (N-1) узлов таблицы и нажать Enter. Далее надо будет ввести значения из таблицы, по окончанию ввода нажать Enter.

На экран будет выведена введённая таблица значений. Затем пользователю будет предложено «Введите x ». Нужно ввести x для которого необходимо найти приближённое значение. После этого программа вычислит значение и предложит найти значения для другого x.

Дальше программа попросит ввести шаг деления графика. После ввода шага программа построит график полинома. Для продолжения нужно нажать Enter.

Потом программа спросит «повторить вычисления и построения графика полинома для другой функции?» Чтобы начать заново нужно нажать 1, чтобы закончить работу с программой нажать 0 и после ввода подтвердить выбор клавишей Enter.

Численные Методы 2020

Содержание

О курсе

Этот курс численных методов похож на классическую вычислительную математику, но в то же время более практический. Студент на этой дисциплине научится владеть основными методами численного дифференцирования, интегрирования, интерполяции и аппроксимации, приближённо искать корни нелинейных уравнений и решать системы дифференциальных уравнений и многое другое. Будет рассказано о применении большинства алгоритмов в практических задачах показа медийной рекламы.

Курс читается с 2016 года.

Учебный план

Предусмотрены лекционные, семинарские занятия, 2 контрольных работы, а также курсовой проект. Все материалы курса лежат в dropbox.

Приблизительная программа лекций

Пример практической задачи: показ рекламы в сети Интернет (1 лекция, 1 семинар)

Общая схема процесса. Отличия от традиционной рекламы. Участники процесса. Медийная и контекстная реклама. Рекламные кампании, их параметры. Описание аудитории. Пространство сегментов аудитории. Вероятностное описание посетителей. Оценка профиля посетителя Интернета. Таргет рекламной кампании. Определение вероятности попадания посетителя в целевую аудиторию. Алгоритм показа медийной рекламы с таргетированием. Упрощенная модель показа рекламы с таргетированием в Интернете. Постановка практической задачи. Необходимость применения численных методов решения.

Предмет вычислительной математики (½ лекции)

Специфика машинных вычислений. Элементарная теория погрешностей.

Численное дифференцирование (½ лекции, 1 семинар)

Простейшие формулы численного дифференцирования. Оценка погрешности. Метод неопределенных коэффициентов вывода формул численного дифференцирования. Оптимальный шаг численного дифференцирования.

Приближение функций, заданных на дискретном множестве (2 лекции, 2 семинара)

Задача алгебраической интерполяции. Существование и единственность алгебраического интерполяционного полинома. Интерполяционный полином в форме Лагранжа и в форме Ньютона. Остаточный член интерполяции. Интерполяция по чебышёвским узлам. Оценка погрешности интерполяции для функций, заданных с ошибками. Кусочно-многочленная интерполяция. Интерполяция сплайнами.

Численное интегрирование (1 лекция, 1 семинар)

Квадратурные формулы Ньютона-Котеса (прямоугольников, трапеций, Симпсона) и оценка их погрешности. Квадратурные формулы Гаусса.

Решение систем линейных алгебраических уравнений (4 лекции, 3 семинара)

Нормы в конечномерных пространствах. Обусловленность системы линейных алгебраических уравнений. Прямые методы решения: метод Гаусса, метод Гаусса с выбором главного элемента, метод прогонки для систем специального вида. LU-разложение и его связь с методом Гаусса. Итерационные методы решения линейных систем. Метод простых итераций. Необходимое, достаточное условия сходимости метода простых итераций. Методы Якоби, Зейделя. Методы решения, основанные на минимизации функционалов. Переопределенные системы линейных алгебраических уравнений.

Методы численного решения нелинейных уравнений (1 лекция, 1 семинар)

Принцип сжимающих отображений. Метод простых итераций. Условие сходимости метода простых итераций. Метод Ньютона. Порядок сходимости и условия достижения заданной точности итерационных методов. Метод релаксации.

Численные методы решения обыкновенных дифференциальных уравнений (2 лекции, 1 семинар)

Аппроксимация, устойчивость, сходимость. Теорема о связи аппроксимации, устойчивости, сходимости. Численные методы решения задачи Коши для ОДУ. Методы Рунге–Кутты и Адамса решения ОДУ. Численное решение краевых задач для ОДУ. Методы решения линейных и нелинейных краевых задач.

Применение численных методов в модели показа медийной рекламы (2 лекции, 2 семинара)

Применение численного интегрирования, табуляция результата. Использование интерполяции для вычисления функции, использование сплайнов. Численное решение системы линейных алгебраических уравнений для построения сплайна. Применение формул численного дифференцирования для аппроксимации уравнений. Численное решение задачи Коши для модели показа медийной рекламы. Имитационная модель системы показа медийной рекламы. Алгоритмы игры на аукционе RTB (Real-Time Bidding).

Курсовой проект

Курсовой проект — домашнее задание, рассчитанное на семестр, составляющее половину оценки Одз. Проект предполагает решение какой-либо практической задачи. Студенты могут выбрать тему из предложенных здесь или предложить свою (в этом случае необходимо обсудить тему с семинаристом). Возможна работе в команде, но это тоже должно быть оговорено заранее. Ориентировочный дедлайн выбора тем по проекту — 29 февраля 2020.

Домашние задания

Домашние задания нужно присылать на почту maxkaledin@gmail.com с темой «Численные методы ДЗ 1 Илья Иванов».

Экзамен

Четвёртый курс (сессия 3го модуля): список вопросов

Правила оценивания

Для третьего курса (3-4 модуль)

Результирующая оценка по дисциплине рассчитывается по формуле

Накопленная и экзаменационная оценки округляются арифметически.

Накопленная оценка рассчитывается по формуле

где пкр — промежуточная контрольная работа, фкр — финальная контрольная работа, экз — экзамен.

Для четвёртого курса (3 модуль)

Накопленная оценка имеет другую формулу, экзамен будет проведён в конце третьего модуля.

Контакты

Виктор Лобачёв, лекции
Максим Каледин, семинары

email: maxkaledin@gmail.com аудитория в ВШЭ: Покровский бульвар, 11, комната T926 https://www.hse.ru/staff/mkaledin

Полезные ссылки

Базовый учебник

Лобанов А.И., Петров И.Б. Лекции по вычислительной математике — М.: Интернет–Университет информационных технологий, 2006. — 522с.

Численные методы в программировании

Кафедра физической и коллоидной химии
Южного федерального университета

ЧИСЛЕННЫЕ МЕТОДЫ И ПРОГРАММИРОВАНИЕ

ПРОГРАММА КУРСА
«ЧИСЛЕННЫЕ МЕТОДЫ И ПРОГРАММИРОВАНИЕ»
для студентов химического факультета ЮФУ (РГУ)

Математическое моделирование химических систем и процессов является важной задачей современной науки и техники. Развитие алгоритмов и программных средств их реализации ставит задачу обучения химиков эффективным навыкам использования численных методов для решения практических задач химических исследований. Соединение знаний химических законов и численных методов решения возникающих из моделирования химических задач позволяет существенно улучшить готовность студентов к профессиональной деятельности в современных условиях.

Читать еще:  Язык программирования примеры программ

Целью курса «Численные методы и программирование» является ознакомление студентов с математическими основами численных методов решения задач (решение уравнений, систем уравнений, дифференциальных уравнений, интегрирования и дифференцирования) и применение этих численных методов для решения проблем математического моделирования химических систем и процессов. Курс ориентирован на применение общедоступной программы автоматизации вычислений MS Excel.

ОСНОВНОЕ СОДЕРЖАНИЕ КУРСА

Основные приемы работы с программой Microsoft Excel. Рабочие книги и рабочие листы. Типы данных в MS Excel. Использование формул для выполнения вычислений. Порядок выполнения арифметических операций, использование встроенных функций. Абсолютные и относительные ссылки на ячейки. Диапазоны ячеек, массивы, выполнение матричных операций.

Основы математического моделирования. Основные этапы математического моделирования. Создание математической модели. Приближенный характер математической модели. Реализация математической модели. Алгоритм и программа. Способы записи алгоритмов. Численный эксперимент. Тестирование и отладка математической модели.

Погрешности математического моделирования. Неустранимая погрешность (погрешность модели) и устранимая погрешность (погрешность численного метода и погрешность вычислительная).

Приближенные числа. Правила записи приближенных чисел. Теория приближенных вычислений. Абсолютная и относительная погрешность. Погрешность вычисления функции одной и нескольких переменных. Погрешности сложения, вычитания, умножения, деления приближенных чисел.

Итерационные последовательности. Типы сходимости итерационных процессов. Локальная и глобальная сходимость. Порядок сходимости. Критерии сходимости итерационных последовательностей.

Численные методы решения уравнений. Метод простой итерации. Метод касательных (Ньютона-Рафсона). Метод дихотомии (половинного деления). Метод хорд (секущих).

Задачи моделирования химических систем, сводящиеся к решению уравнений. Равновесие в системе с произвольной химической реакцией. Равновесия в буферном растворе слабой кислоты и соответствующей соли. Равновесие в растворах комплексных соединений, слабых кислот и оснований.

Численные методы решения систем линейных уравнений. Матричная форма записи систем линейных уравнений. Влияние погрешности коэффициентов системы уравнений на погрешность результата. Обусловленность систем линейных уравнений. Точные (прямые) методы решения задачи. Методы Гаусса, Гаусса-Жордана, Крамера. Нахождение обратной матрицы.

Численные методы решения систем уравнений. Метод сопряженных градиентов. Метод минимальных невязок. Примеры химических задач, сводимых к решению систем линейных уравнений. Определение состава раствора по его светопоглощению. Аппроксимация ряда точек заданной функцией с параметрами. Интерполяция сплайнами. Регрессионный анализ методом наименьших квадратов (МНК). Линейные и нелинейные математические модели. Нелинейные модели, которые можно свести к линейным.

Численные методы решения систем нелинейных уравнений. Метод простой итерации. Метод Зейделя. Метод Ньютона. Решение задач оптимизации функции нескольких переменных. Метод наискорейшего спуска. Разложение контура полосы поглощения на составляющие полосы.

Методы численного интегрирования. Методы прямоугольников, трапеций, Симпсона. Квадратурные формулы Гаусса. Числа Котеса. Системы ортогональных полиномов (Чебышева, Эрмита, Ляггера, Лежандра). Их использование для задач численного интегрирования.

Численные методы решения обыкновенных дифференциальных уравнений первого порядка. Метод Эйлера. Методы Рунге-Кутта 2-го – 4-го порядков. Метод прогноза и коррекции.

Численное решение систем дифференциальных уравнений первого порядка. Сведение решения дифференциальных уравнений высших порядков к решению системы дифференциальных уравнений первого порядка.

Решение задач химической кинетики. Последовательные, автокаталитические, цепные процессы. Системы с автоколебаниями концентрации реагирующих веществ.

Расширение функциональности таблиц MS Excel. Программирование пользовательских функций на языке MS Visual Basic for applications.

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ:

1. Численные методы и программирование / Режим – доступа:
http://www.physchem.chimfak.sfedu.ru/Source/NumMethods, свободный. – Яз. рус.

2. Джонсон, К. Численные методы в химии / К. Дж. Джонсон ; пер. с англ. В.П. Дмитриева, С.В. Кривеко, И.Г. Сыщиковой ; под ред. А.М. Евсеева. – М. : Мир, 1983. – 503 с.

3. Мэтьюз Д. Численные методы. Использование MATHLAB : учебное издание / Д. Мэтьюз, К. Финк ; пер. с англ. Л.Ф. Козаченко ; под. ред. Ю.В. Козаченко. – М. : Изд. дом Вильямс, 2001. – 720 с. : ил.

4. Турчак Л.И. Основы численных методов: учеб. пособие / Л.И. Турчак, П.В. Плотников. – М. : ФИЗМАТЛИТ, 2003. – 304 с.

5. Эберт К. Компьютеры. Применение в химии / К. Эберт, Х. Эдерер ; пер. с нем. А.Е. Гохмана ; под. ред. Н.С. Зефирова. – М. : Мир, 1988. – 415 с.

6. Самарский А.А. Математическое моделирование: Идей. Методы. Примеры. : монография / А.А. Самарский, А.П. Михайлов. – М. : ФИЗМАТЛИТ, 2005. – 320 с.

7. Формалев В.Ф. Численные методы: учебник / В.Ф. Формалев, Д.Л. Ревизников ; под ред. А.И. Кибзуна. – М. : ФИЗМАТЛИТ, 2004. – 400 с.

8. Н.Бахвалов, И.Жидков, Г.Кобельков Численные методы. ФизМатЛит. 18 2002.

9. Н.Н.Калиткин Численные методы. ФизМатЛит. 2000.

10. Васильев, А.Н. Научные вычисления в Microsoft Excel [Текст] : серия: Решение практических задач / А.Н. Васильев – М. : Диалектика, 2004. – 512 с. : ил.

СПИСОК РЕКОМЕНДУЕМЫХ ЭЛЕКТРОННЫХ РЕСУРСОВ:

Численные методы в визуальном программировании

Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ

Кафедра прикладной математики

по курсу «Информатика»

для самостоятельной работы студентов

в визуальном программировании

Методические указания по курсу «Информатика» для самостоятельной работы студентов всех специальностей. Численные методы в визуальном программировании. Часть 3. /Казанский государственный архитектурно-строительный университет. Сост.: И.Н.Гатауллин. Казань, 2008. -35 с.

Методические указания состоят из трёх частей и предназначены для самостоятельной работы студентов всех специальностей и используются при выполнении лабораторных и контрольных работ по курсу «Информатика» на языке Visual Basic. В данной работе приводятся численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов, методы аппроксимации дискретных функций и методы решения задач линейного программирования.

Табл. нет, библиогр. назв. 8

Рецензент — Р.Б.Салимов, доктор физ.-мат. наук, профессор

университет, 2008 г.

1. Численное решение нелинейных уравнений

1.1 Метод деления отрезка пополам

Пример 1-1: Найти решение уравнения x3+x-1=0 c точностью =0.001 методом деления отрезка пополам.

Решение: Работа выполняется в следующей последовательности:

1. Запустить VISUAL BASIC. В окне New Project выбрать Стандартный.EXE вкладки New (новый) и кликнуть по кнопке «Открыть».

2. На экране появится новый проект и форма Project1 — Form1 (Form), содержание которой нужно заполнить необходимыми компонентами, с помощью которых можно будет выполнить необходимые вычисления.

3. Во-первых, необходимы элементы, которые будут использоваться для ввода данных A, B и E. Используем для этой цели элементы Text1, Text2 и Text3. Во-вторых, необходимы элементы, в которых будут отражены результаты вычисления xn и yn. Используем для этой цели элементы Text4 и Text5.

4. Для оформления надписей для обозначения текстовых окон Text1, Text2, Text3, Text4 и Text5 можно использовать метки Label1, Label2, Label3, Label4 и Label5 соответственно.

5. Чтобы процедура пользователя была доступна на всех формах приложения, ее текст можно записать в специальном окне Module — модуль приложения. Программный код такой программы будет храниться в файлах приложения с расширением *.bas.

Function fnf(x As Single) As Single

6. Для выполнения функций вычисления необходима одна кнопка Command1. Это будет «Старт». Вторая кнопка Command2 выполняет функцию завершения работы приложения — кнопка «Финиш».

7. Теперь следует все указанные выше компоненты вынести на форму. Для этого на панели стандартных элементов находим значок одного из компонент, активизируем его и «переносим» на форму: рисуем условный прямоугольник в том месте формы, где будет предположительно находиться этот элемент, учитывая при этом его размеры.

8. Аналогичные действия выполняем поочередно для каждого элемента, пока на форме не появятся все 12 элементов.

9. Далее изменяем свойства объектов, используя страницу свойств Properties. Для изменения свойств элементов следует активизировать элемент — выделить его на форме. Далее для выделенного элемента в окне свойств можно вносить изменения: для Command1 изменить свойство Caption = `Старт`, для Command2 — свойство Caption = `Финиш`. Для остальных элементов задать значения свойств:

Читать еще:  Каноническая форма задачи линейного программирования

Label1.Caption = `Введите значение A`

Label2.Caption = `Введите значение B`

Label3.Caption = `Введите значение E`

Label4.Caption = `Вывод значения xn`

Label5.Caption = `Вывод значения yn`

Заготовку формы для примера 1-1 с измененными свойствами смотрите на рис. 2.3.

10. Для создания программного кода в проводнике проекта или в меню View выбрать команду Code.

В окне Project1 — Form1 (Code) выбрать в списке General название кнопки 1 и кликнуть по ней. В результате появится заготовка записи программного кода для Command1 с инициированием для нее события Click. Значения A, B, E пользователь должен ввести в окна Text1, Text2, Text3. Но в текстовом окне данные получаются также текстовые, типа Single. Поэтому используем функцию Val( ) для перевода в числовой тип Single, который объявлен для переменных A, B, E в начале программы в операторе Dim. Для вывода значений xn, yn используется функция Round( ), которая округляет количество знаков после запятой до четырёх.

11. Аналогичные действия выполняем в отношении кнопки 2. Для Command2 будет выполняться одно действие — закрыть приложение. Это выполняет команда End.

Рис. 2.3. Заготовка формы для примера 1-1 с измененными свойствами.

12 Программный код для примера нахождения корней уравнения методом деления отрезка пополам будет иметь вид:

Private Sub Command1_Click()

Rem Лабораторная работа 1-1, вариант 13

Rem A=0, B=1, E=0.001

Dim A, B, E, YA, YB, xn, yn As Single

1 A = Val(Text1.Text)

YA = fnf(A / 1): YB = fnf(B / 1)

If YA * YB > 0 Then GoTo 1

2 xn = (A + B) / 2: yn = fnf(xn / 1)

If YA * yn E Then GoTo 2

Text4.Text = Round(xn, 4)

Text5.Text = Round(vn, 4)

Private Sub Command2_Click()

13. Для сохранения проекта надо выполнить команду меню File (файл) > Save Project As (Сохранить проект как). В диалоговом окне Save File As (Сохранить файл как) выбрать название диска, на котором должна быть создана папка для хранения файлов нового проекта. Далее для сохранения формы, следует набрать имя файла в поле ввода File Name (Имя файла), например Primer1-1, и нажать клавишу «Enter». Форма Form1 будет сохранена в файле с расширением Primer1-1.frm.

14. После сохранения формы следует сохранить проект. В VISUAL BASIC это происходит автоматически, после чего должно появиться диалоговое окно Save Project As -Сохранить проект. Следует набрать то же имя Primer1-2 и нажать клавишу «Enter». Файл проекта будет сохранен с расширением Primer1-1.vbp.

15. Теперь запустить проект на выполнение. Выбираем команду Run > Start или Shift+F5. В поле Text1 нужно ввести значение A, в поле Text2 — значение B, в поле Text3 — значение E — после чего нажать кнопку «Старт». В окнах Text4, Text5 появились значения xn, yn. Для завершения работы приложения следует нажать кнопку «Финиш».

1.2 Метод Ньютона (метод касательных)

численный метод линейный программирование

Пример: Решить уравнение F(x)=x3+x-1=0 на отрезке [0;1] методом Ньютона c точностью =0.01.

На рис. 1.5 приведена программа решения данного уравнения методом Ньютона.

REM LR-1-2, m=13, n=5

IF ABS(FNF(X)/FNP(X))>E THEN 1

Рис. 1.5. Программа нахождения корней методом Ньютона.

1.3 Метод простой итерации

Пример: Решить уравнение F(x)=x3+x-1=0 на отрезке [0;1] методом простой итерации c точностью =0.01.

REM LR-1-3, m=13, n=5

IF ABS(FNF(X)/M)>E THEN 1

Рис.1.7. Программа решения уравнения методом простой итерации.

2. Методы решения систем линейных алгебраических уравнений

2.1 Метод Гаусса

Пример: Решить систему уравнений методом Гаусса:

x1 + 4×2 + 3×3 = 10

2.2 Метод прогонки

Пример: Решить систему уравнений методом прогонки:

-2×1 + 9×2 + x3 = n+9 m -1

0,1×2 +4×3 -x4 = 4 n+0,1 m -5

-x3 +8×4 — x5 = 40 -n — L

где значения m — номер варианта, n — номер группы, L — номер факультета.

На рис. 2.1 приведена программа решения методом прогонки.

REM LR-2-2, m=13, n=5

DIM A(5), B(5), C(5), D(5), U(5), V(5), X(6), R(5)

READ A(I), B(I), C(I), D(I)

FOR I =4 TO 1 STEP -1

PRINT X ; I; = ; X(I); R; I; R(I)

Рис.2.1. Программа решения методом прогонки.

2.3 Метод простой итерации (метод Якоби)

Пример: Преобразовать систему уравнений:

к виду, пригодному для построения итерационного процесса методом Якоби и выполнить три итерации.

2.4 Метод Зейделя

3. Численные методы решения систем нелинейных уравнений

3.1 Метод простой итерации (метод Якоби)

Пример: Найти решение системы (3.7) методом Зейделя с точностью =0,001.

Программа, реализующая решение данной задачи, представлена на рис.3.2.

REM LR-3-2, m=13, n=5

1 X=X-(2*SIN(X+1)-Y — 0.5)/M1

Рис.3.2. Программа решения методом Зейделя.

3.2 Метод Ньютона

Пример: Найти решение системы (3.7)

G(x,y)=10·cos(y-1)-x+0.4 = 0 (3.13)

методом Ньютона с точностью =0,001.

Программа реализующая метод Ньютона для указанной задачи представлена на рис. 3.3.

REM LR-3-3, m=13, n=5

1 F = 2*SIN(X+1)-Y — 0.5

PRINT X;Y; F;G;DX;DY;

Рис.3.3. Программа, реализующая метод Ньютона

3.3 Приближение функции по методу наименьших квадратов (МНК)

Пример: Подобрать аппроксимирующий полином первой степени y=ax+b для данных

Пример: Используя МНК построить эмпирическую зависимость y=ax2+bx+c, аппроксимирующую следующие табличные значения:

3.4 Интерполяционный полином в форме Лагранжа

Пример. Пусть задана таблица 4.4

4. Численное интегрирование

4.1 Метод прямоугольников

Программа вычисления интеграла методом прямоугольников представлена на рис. 5.2.

REM LR-5-1, m=13, n=5

Рис. 5.2. Программа вычисления интеграла методом прямоугольников.

4.2 Метод трапеций

Программа вычисления интеграла методом трапеций представлена на рис. 5.4.

REM LR-5-2, m=13, n=5

Рис. 5.4. Программа вычисления интеграла методом трапеций.

Метод парабол (Симпсона)

Пример: Требуется вычислить определенный интеграл методами прямоугольников, трапеций и парабол:

Программа вычисления интеграла методом парабол (Симпсона) представлена на рис. 5.6.

REM LR-5-3, m=13, n=5

Подобные документы

Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.

курсовая работа [149,7 K], добавлен 16.11.2008

Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.

курсовая работа [435,8 K], добавлен 15.06.2013

Численные методы решения задач, сводящиеся к арифметическим и некоторым логическим действиям над числами, к действиям, которые выполняет ЭВМ. Решение нелинейных, системы линейных алгебраических, обыкновенных дифференциальных уравнений численными методами.

дипломная работа [1,4 M], добавлен 18.08.2009

Метод половинного деления как один из методов решения нелинейных уравнений, его основа на последовательном сужении интервала, содержащего единственный корень уравнения. Алгоритм решения задачи. Описание программы, структура входных и выходных данных.

лабораторная работа [454,1 K], добавлен 09.11.2012

Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.

курсовая работа [1,6 M], добавлен 20.01.2010

Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.

курсовая работа [539,2 K], добавлен 15.06.2013

Численные методы линейной алгебры. Матричный метод. Методы Крамера и Гаусса. Интерации линейных систем. Интерации Якоби и Гаусса — Зейделя. Листинг программы. Численные методы в электронных таблицах Excel и программе MathCAD, Microsoft Visual Basic

курсовая работа [1,2 M], добавлен 01.06.2008

Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.

курсовая работа [532,9 K], добавлен 14.01.2014

Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.

курсовая работа [1,4 M], добавлен 15.08.2012

Особенности решения уравнений с одной переменной методом половинного деления. Оценка погрешности метода простой итерации. Суть решения уравнений в пакете Mathcad. Векторная запись нелинейных систем. Метод Ньютона решения систем нелинейных уравнений.

курсовая работа [2,1 M], добавлен 12.12.2013

Ссылка на основную публикацию
Adblock
detector