• Преподавателю
  • Математика
  • МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Учебное пособие содержит  указания для практических занятий по «Численныеметоды», являющейся профессиональной дисциплиной. Методические указания составлены  в соответствии с рабочей программой  по дисциплине «Численныеметоды»и предназначены для студентов 3-го курса, обучающихся по специальности 230115 Программирование в компьютерных системах В методических указаниях приведены теоретический (справочный) материал в соответствии с темой работы, обращение к которому поможет выполнить задания практич...
Раздел Математика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

ДМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахЕПАРТАМЕНТ ОБРАЗОВАНИЯ, НАУКИ И МОЛОДЕЖНОЙ ПОЛИТИКИ ВОРОНЕЖСКОЙ ОБЛАСТИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВОРОНЕЖСКОЙ ОБЛАСТИ

«СЕМИЛУКСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИКО-ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ»





М.Д. Евдокимова





методические указания

для практических занятий

по дисциплине «Численные методы»

для студентов 3 курса

(специальность 230115 Программирование в компьютерных системах)





МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах





Семилуки , 2014

Одобрено методическим советом ГОБУ СПО ВО «СГТЭК»

Автор-составитель: Евдокимова М.Д., преподаватель ГОБУ СПО ВО «СГТЭК»




Учебное пособие содержит указания для практических занятий по «Численные методы», являющейся профессиональной дисциплиной. Методические указания составлены в соответствии с рабочей программой по дисциплине «Численные методы» и предназначены для студентов 3-го курса, обучающихся по специальности 230115 Программирование в компьютерных системах




© Евдокимова М.Д., 2014

©ГОБУ СПО ВО «СГТЭК»

Оглавление


стр

Введение

5

Оценка практических работ обучающихся

7

Общая классификация ошибок

7

Раздел 1. Действия над приближенными числами

9

Практическое занятие №1 «Использование основных численных методов решения математических задач. Вычисление погрешностей результатов арифметических действий»

9

Раздел 2. Численные методы решения основных математических задач

17

Практическое занятие №2 «Решение алгебраических и трансцендентных уравнений приближенными методами (метод половинного деления): разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

17

Практическое занятие №3 «Решение алгебраических и трансцендентных уравнений приближенными методами (метод хорд и касательных): разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

21

Практическое занятие №4 «Решение систем линейных алгебраических уравнений методом Гаусса: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

26

Практическое занятие №5 «Решение систем линейных алгебраических уравнений приближенными методами: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

35

Практическое занятие №6 «Составление интерполяционных формул Лагранжа и Ньютона: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

45

Практическое занятие №7 «Интерполирование сплайнами: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

49

Практическое занятие №8 «Вычисление интегралов при помощи формул Ньютона-Котеса: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

55

Практическое занятие №9 «Вычисление интегралов при помощи формул Гаусса: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

62

Практическое занятие №10 «Нахождение решений обыкновенных дифференциальных уравнений с использованием методов Эйлера: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

66

Приложение 1 Практическое занятие №2

74

Приложение 2 Практическое занятие №3

77

Приложение 3 Практическое занятие №4

80

Приложение 4 Практическое занятие №5

89

Приложение 5 Практическое занятие №6

93

Приложение 6 Практическое занятие №7

96

Приложение 7 Практическое занятие №8

101

Приложение 8 Практическое занятие №10

105

Литература

109

Введение

Методические указания к выполнению практических занятий по дисциплине «Численные методы» предназначены для закрепления теоретических знаний, полученных на лекциях, а также для овладения студентами умений и навыков применять эти знания при самостоятельной работе.

Перечень практических занятий соответствует рабочей программе по дисциплине «Численные методы»

Выполнение студентами практических работ по дисциплине проводится с целью:

- закрепления полученных теоретических знаний по дисциплине;

- углубления теоретических знаний в соответствии с заданной темой;

- формирования умений решать практические задачи;

- развития самостоятельности, ответственности и организованности;

- формирования активных умственных действий студентов, связанных с поисками рациональных способов выполнения заданий;

- подготовки к экзамену.

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

Содержание заданий практической работы ориентировано на подготовку студентов к освоению профессиональных модулей ОПОП по специальности 230115 Программирование в компьютерных системах и овладению профессиональными компетенциями:

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

ПК 2.5.в Реализовывать основные численные подходы к решению математических задач при работе в базе данных;

ПК 3.7.в Осуществлять разработку тестовых сценариев при решения основных математических задач.

В процессе освоения дисциплины у студентов должны формироваться общие компетенции:

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

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

ОКЗ. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность.

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

ОК 5. Использовать информационно-коммуникационные технологии в профессиональной деятельности.

ОК 6. Работать в коллективе и команде, эффективно общаться с коллегами, руководством, потребителями.

ОК 7. Брать на себя ответственность за работу членов команды (подчиненных), результат выполнения заданий.

ОК 8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.

ОК 9. Ориентироваться в условиях частой смены технологий в профессиональной деятельности.

ОК 10. Исполнять воинскую обязанность, в том числе с применением полученных профессиональных знаний (для юношей).

В результате освоения учебной дисциплины обучающийся должен

уметь:

  • использовать основные численные методы решения математических задач;

  • разрабатывать алгоритмы и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата.

знать:

  • методы хранения чисел в памяти ЭВМ и действия над ними, оценку точности вычислений, т.е. действия над приближенными числами;

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

В методических указаниях приведены теоретический (справочный) материал в соответствии с темой занятия, обращение к которому поможет выполнить задания практической занятия.

Организация выполнения и контроля практических занятий по дисциплине «Численные методы» является подготовительным этапом к сдаче экзамена по данной дисциплине.


Нормы оценки знаний, умений и навыков обучающихся


Оценка практических работ обучающихся

Ответ оценивается отметкой «5», если:

  • работа выполнена полностью;

  • в логических рассуждениях и обосновании решения нет пробелов и ошибок;

  • в решении нет математических ошибок (возможна одна неточность, описка, которая не является следствием незнания или непонимания учебного материала).

Отметка «4» ставится в следующих случаях:

  • работа выполнена полностью, но обоснования шагов решения недостаточны (если умение обосновывать рассуждения не являлось специальным объектом проверки);

  • допущены одна ошибка или есть два - три недочёта в выкладках, рисунках, чертежах или графиках (если эти виды работ не являлись специальным объектом проверки).

Отметка «3» ставится, если:

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

Отметка «2» ставится, если:

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

Отметка «1» ставится, если:

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

Учитель может повысить отметку за оригинальный ответ на вопрос или оригинальное решение задачи, которые свидетельствуют о высоком математическом развитии обучающегося; за решение более сложной задачи или ответ на более сложный вопрос, предложенные обучающемуся дополнительно после выполнения им каких-либо других заданий


Общая классификация ошибок


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

Грубыми считаются ошибки:

  • незнание определения основных понятий, законов, правил, основных положений теории, незнание формул, общепринятых символов обозначений величин, единиц их измерения;

  • незнание наименований единиц измерения;

  • неумение выделить в ответе главное;

  • неумение применять знания, алгоритмы для решения задач;

  • неумение делать выводы и обобщения;

  • неумение читать и строить графики;

  • неумение пользоваться первоисточниками, учебником и справочниками;

  • потеря корня или сохранение постороннего корня;

  • отбрасывание без объяснений одного из них;

  • равнозначные им ошибки;

  • вычислительные ошибки, если они не являются опиской;

  • логические ошибки.

К негрубым ошибкам следует отнести:

  • неточность формулировок, определений, понятий, теорий, вызванная неполнотой охвата основных признаков определяемого понятия или заменой одного - двух из этих признаков второстепенными;

  • неточность графика;

  • нерациональный метод решения задачи или недостаточно продуманный план ответа (нарушение логики, подмена отдельных основных вопросов второстепенными);

  • нерациональные методы работы со справочной и другой литературой;

  • неумение решать задачи, выполнять задания в общем виде.

Недочетами являются:

  • нерациональные приемы вычислений и преобразований;

  • небрежное выполнение записей, чертежей, схем, графиков.

Раздел 1. Основные понятия и принципы моделирования


Практическое занятие №1

«Использование основных численных методов решения математических задач. Вычисление погрешностей результатов арифметических действий»

Цель занятия:

  • закрепить умения вычислять погрешности результатов арифметических действий;

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

Теоретический материал и методические указания к выполнению заданий


Приближение числа. Погрешности приближённых значений чисел


Пусть X-точное значение некоторой величины, x - наилучшее приближение этой величины.

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

ех = Х-х .

Определение: Число х называется приближённым значением точного числа Х с точностью до х, если абсолютная погрешность приближённого значения a не превышает х, т.е. Х-х  х .

Определение: Число х называется границей абсолютной погрешности приближённого значения числа х.

Число х на практике стараются подобрать как можно меньше и простое по записи.

Из неравенства (1) найдём границы, в которых заключено точное значение числа Х:

х - х  Х  х + х.

НГх= х - х - нижняя граница приближения величины Х.

ВГх= х +х - верхняя граница приближения величины Х.

Определение: Относительной погрешностью МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах приближенного числа х числа Х называется отношение абсолютной погрешности х этого приближения к числу х, т.е.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Если первая значащая цифра в относительной погрешности МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах меньше 5, то граница относительной погрешности определяется из неравенства МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , где n- количество верных цифр.


Вычисление погрешностей арифметических действий


х#у

∆(х#у)

Δ(х#у)

х+у

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахx+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахy

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

х-у

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахx+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахy

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

ху

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

х/у

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


Оценка погрешностей значений функций


f(x)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

sin x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

cos x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

tg x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

ln x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

lg x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

arcsin x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

arccos x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

arctg x

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Способы приближенных вычислений по заданной формуле


  1. Вычисление по правилам подсчета цифр


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

Правила метода:

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

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

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

  4. В записи промежуточных результатов следует сохранять на одну цифру больше, чем описано в правилах 1-3. В окончательном результате эта запасная цифра округляется.

Правила подсчёта цифр носят оценочный характер, но практическая надёжность этих правил достаточно высока.

При исследовании данного метода используется расчётная таблица - расписка формул.

Пример: Вычислить значение функции МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , а = 2,156, b = 0,927.

а

2,156

пояснения при подсчете верных цифр

b

0,927

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

8,637

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах= 8,63652,

оценим производную (МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)' = МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , значит (используя правило 3), надо сохранить на один знак меньше, чем в значении аргумента + 1 запасная цифра.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,9628

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах= 0,9628083,

оценим производную МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , (используя правило 3) сохраняем три цифры как в аргументе + 1 запасная цифра.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

9,600

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах=8,637+0,9628=9,5998,

(по правилу 1)результат округляется до трёх знаков после запятой, т.е. 9,600.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,8593

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

(по правилу 2) результат округляем до трех цифр, как аргумент + 1 запасная цифра.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3,0153

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

(используя правило 1)округляем результат до трех цифр + 1 запасная цифра.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1,1037

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

оценим производную МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , (используя правило 3) сохраняем три цифры как в аргументе + 1 запасная цифра.

A

8,698

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

при округлении результата использовали правило 2.

А

8,70

8-запасная цифра,

По правилу 4, запасная цифра в окончательном результате округляется МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


  1. Вычисление со строгим учётом предельных абсолютных погрешностей

Этот метод предусматривает использование правил вычисления предельных абсолютных погрешностей. При пооперационном учете ошибок промежуточные результаты, так же как и их погрешности, заносятся в специальную таблицу, состоящую из двух параллельно заполняемых частей - для результатов и их погрешностей. В таблице приведены пошаговые вычисления со строгим учетом предельных абсолютных погрешностей по той же формуле, что и в предыдущем примере, и в предположении, что исходные данные a и b имеют предельные абсолютные погрешности МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , т.е. у a и b все цифры верны.

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

Пример: Вычислить значение функции МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , а = 2,156, b = 0,927.

а

b

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

a+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

ln(a+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

A

2,156

0,927

8,637

0,9628

9,603

0,860

3,016

1,104

8,70

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системаха

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахb

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(a+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахln(a+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахA

0,0005

0,0005

0,0049

0,00027

0,0054

0,0016

0,0021

0,00076

0,016

Используя калькулятор, имеем МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

При вычислении предельных абсолютных погрешностей используем таблицу 1.2. МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Судя по ее величине, в полученном значении экспоненты в строгом смысле верны два знака после запятой. Округляем это значение с одной запасной цифрой:МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и вносим его в таблицу.

При этом возникает погрешность округления: 8,637-8,63652=0,00048.

Вслед за этим вычисляем полную погрешность полученного результата (погрешность действия плюс погрешность округления: 0,0044+0,00048=0,0049), которую так же вносим в таблицу.

Все последующие действия выполняем аналогично с применением соответствующих формул для предельных абсолютных погрешностей.

Округляя окончательный результат до последней верной в строгом смысле цифры, а так же округляя погрешность до соответствующих разрядов результата, окончательно получаем: А = 8,7 МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах 0,1.

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


  1. Вычисление по методу границ


Если нужно иметь абсолютно гарантированные границы возможных значений вычисляемой величины, используют специальный метод вычислений - метод границ.

Пусть f(x, y) - функция непрерывная и монотонная в некоторой области допустимых значений аргументов x и y. Нужно получить её значение f(a, b), где a и b - приближенные значения аргументов, причем достоверно известно, что

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах; МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Здесь НГ, ВГ - обозначение соответственно нижней и верхней границ значений параметров. Итак, вопрос состоит в том, чтобы найти строгие границы значения (a, b) при известных границах значений a и b.

Допустим, что функция f(x, y) возрастает по каждому из аргументов x и y. Тогда

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Пусть теперь f(x, y) возрастает по аргументу x и убывает по аргументу y. Тогда будет строго гарантировано неравенство

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Рассмотрим указанный принцип на примере основных арифметических действий. Пусть МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах . Тогда очевидно, что

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Точно так же для функции МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (она по x возрастает, а по y убывает) имеем

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Аналогично для умножения и деления:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

Пример: Вычислить значение функции МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , а = 2,156, b = 0,927.

Нижняя и верхняя границы значений a и b определены из условия, что в исходных данных а = 2,156 и b = 0, 927 все цифры верны (МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

т.е. 2,1555 < a < 2,1565; 0,9265 < b < 0,9275.


а

b

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

a+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

ln(a+МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах)

A

НГ

2,1555

0,9265

8,63220

0,96255

9,59475

0,85840

3,01434

1,10338

8,6894

ВГ

2,1565

0,9275

8,64084

0,96307

9,60391

0,86026

3,01676

1,10419

8,7041

Таким образом, результат вычислений значения А по методу границ имеет вид 8,6894 < А < 8,7041.


По результатам вычислений получаем

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

что дает А = 8,697МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах0,008, или при записи верными цифрами, А=8,7МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах0,01.

Задания практического занятия №1

Задание 1.

Вычислите с помощью МК значение величины Z при заданны значениях параметров a, b и c, использую «ручные» расчетные таблицы для пошаговой регистрации результатов вычислений, тремя способами:

  1. по правилам подсчета цифр;

  2. с систематическим учетом границ абсолютных погрешностей;

  3. по способу границ.

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

В результате выполнения практической работы необходимо сделать обоснованный вывод о целесообразности и эффективности использования тех или иных методов и средств вычислений.

Номер варианта

Z

a

b

c

1

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3,4

6,22

0,149

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

4,05

6,723

0,03254

3

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,7219

135,347

0,013

4

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3,672

4,63

0,0278

5

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1,24734

0,346

0,051

6

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

11,7

0,0937

5,081

7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1,75

1,21

0,041

8

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

18,0354

3,7251

0,071

9

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,113

0,1056

89,4

10

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,0399

4,83

0,072

11

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1,574

1,40

1,1236

12

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

12,72

0,34

0,0290

13

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3,49

0,845

0,0037

14

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,0976

2,371

1,15874

15

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,11587

4,25

3,00971


Контрольные вопросы


  1. Что такое абсолютная погрешность приближенного значения величины?

  2. Что такое относительная погрешность приближенного значения величины?

  3. Какое влияние на погрешность арифметических действий оказывают погрешности исходных данных?

  4. В какой зависимости находится абсолютная погрешность значения функции одной переменной от абсолютной погрешности значения аргумента?

  5. Какова последовательность действий на каждом промежуточном этапе расчетной таблицы в вычислениях по правилам подсчета цифр с пооперационным учетом ошибок? на заключительном этапе?

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

  7. Как вычисляются предельные погрешности результата при использовании методики итоговой оценки ошибки вычислений?

  8. В чем основное отличие метода границ от вычислений по методу строгого учета границ погрешностей?

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

Раздел 2. Численные методы решения основных математических задач


Практическое занятие №2

«Решение алгебраических и трансцендентных уравнений приближенными методами (метод половинного деления): разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:

  • закрепить умения отделять корни алгебраических уравнений;

  • закрепить умения решать алгебраические уравнений приближенными методами (метод половинного деления, метод хорд, метод касательных);

  • разработать алгоритм и программ для решения вычислительных задач методом половинного деления, учитывая необходимую точность получаемого результата.


Теоретический материал и методические указания к выполнению заданий


  1. Постановка задачи решения уравнений

Пусть имеется уравнение вида f(x)=0 , где f(x) - алгебраическая или трансцендентная функция.

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


  1. Отделение корней алгебраических и трансцендентных уравнений

Решение указанной задачи начинается с отделения корней, т.е. с установления:

количества корней;

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

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

Тем не менее, отделение корней во многих случаях можно произвести графически.

Упростим задачу, заменив уравнение f(x)=0 равносильным ему уравнением f1(x)= f2(x).

В этом случае строятся графики функций f1(x) и f2(x), а потом на оси х отмечаются отрезки, локализующие абсциссы точек пересечения этих графиков.

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

  1. Если непрерывная на отрезке [a;b] функция f(x) принимает на его концах значения разных знаков (т.е. f(a). f(b)<0), то уравнение (2.1) имеет на этом отрезке, по меньшей мере, один корень.

  2. Если функция f(x) к тому же еще и монотонна, то корень на отрезке [a;b] единственный.

Пример: Для графического отделения корней уравнения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах преобразуем его к равносильному уравнению МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и отдельно построим графики функций МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Из графика вполне очевидно, что уравнение имеет единственный корень ξ и этот корень находится на отрезке [1;1,5].

Вычислим для проверки значения функции МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах на концах отрезка [1;1,5]: f(1)=0.909298; f(1,5)= -0,264344. Как видно, корень на отрезке [1;1,5] действительно имеется.

Рассмотренный прием позволяет при желании сузить отрезок, полученный графическим способом.

Так, в нашем примере, имеем f(1,3)=0,253138>0, так что отрезком, на котором находится корень, можно считать[1,3;1,5].


  1. Метод половинного деления

Пусть уравнение f(x)=0 имеет на отрезке [a;b] единственный корень, причем функция f(x) на этом отрезке непрерывна. Разделим отрезок [a;b] пополам точкой с=(a+b)/2. Если f(c)≠0(что практически наиболее вероятно), то возможны два случая: f(x) меняет знак либо на отрезке [a] (рис 1), либо на отрезке [с;b] (рис 2).

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Рис 1. - функция f(x) меняет знак на отрезке [a;c] Рис 2. - функция f(x) меняет знак на отрезке [c;b]


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

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


  1. Пример решения уравнений методом половинного деления

Пример: Найти корень уравнения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах на отрезке [1,3;1,5] с точностью до 10-3.

Решение: Уравнение МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах имеет единственный корень на отрезке [1,3;1,5]

Уточним корень уравнения: Найдем середину отрезка [1,3;1,5]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Определим, на каком из полученных отрезков [1,3;1,4] и [1,4;1,5] функция МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах меняет свой знак.

1) [1,3;1,4]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах 2) [1,4;1,5]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Значит, корень уравнения находится на отрезке [1,3;1,4].

Проверим, достигается ли заданная точность решения 10-3:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, точность не достигнута.

Разделим отрезок [1,3;1,4] пополам точкой МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Определим, на каком из полученных отрезков [1,3;1,35] и [1,35;1,4] функция МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах меняет свой знак.

1) [1,3;1,35]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах 2) [1,35;1,4]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Значит, корень уравнения находится на отрезке [1,35;1,4].

Проверим, достигается ли заданная точность решения 10-3:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, точность не достигнута.

Снова разделим отрезок [1,35;1,4] пополам точкой МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Определим, на каком из полученных отрезков [1,35;1,375] и [1,375;1,4] функция МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах меняет свой знак.

1) [1,35;1,375]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2) [1,375;1,4]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Значит, корень уравнения находится на отрезке [1,375;1,4].

Проверим, достигается ли заданная точность решения 10-3:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, точность не достигнута.

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

Решение уравнения с точностью 10-3: х=1,399.

Здания практического занятия №2


Задание 1. Отделите корни заданного уравнения, пользуясь графическим методом.

Задание 2. По методу половинного деления вычислите один корень заданного уравнения с точностью 10-3.

а) с помощью «ручной» расчетной таблицы и калькулятора;

б) с помощью программы для компьютера.

Сопоставьте и прокомментируйте полученные результаты.

Номер варианта

Уравнение

Пояснения

1

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

3

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

При х<10

4

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

При х>-10

5

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

При х<5

6

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

8

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

9

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

10

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

11

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

12

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

13

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

14

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

15

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-


Контрольные вопросы


  1. Что означает «решить уравнение аналитически» и «решить уравнение численно»?

  2. В чем заключается задача отделения корней?

  3. В чем состоит основная идея метода половинного деления?

  4. Может ли метод половинного деления дать точное значение корня уравнения?



Практическое занятие №3

«Решение алгебраических и трансцендентных уравнений приближенными методами (метод хорд и касательных): разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:

  • закрепить умения отделять корни алгебраических уравнений;

  • закрепить умения решать алгебраические уравнений приближенными методами (метод хорд и касательных);

  • разработать алгоритм и программ для решения вычислительных задач методом хорд и касательных, учитывая необходимую точность получаемого результата.



Теоретический материал и методические указания к выполнению заданий


  1. Постановка задачи решения уравнений

Пусть имеется уравнение вида f(x)=0 , где f(x) - алгебраическая или трансцендентная функция.

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

Наряду с методом половинного деления существуют и другие, более сложные и более эффективные итерационные методы. Прежде всего, к ним относится группа методов, которые связаны с именем Ньютона. Рассмотрим два из них - метод касательных и метод хорд.

Оба метода основаны на следующем приеме.

Пусть уравнение f(x)=0 имеет единственный корень на отрезке [a;b]. Преобразуем его к равносильному уравнению

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(2.3)

гдеМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах - любая функция, определенная на отрезке [a;b] и не обращающаяся на нем в нуль. Осуществляя различными способами выбор МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , можно получить, в частности, и указанные методы.


  1. Метод касательных

Пусть в (2.3) МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах . Таким образом, итерационная последовательность строится с помощью рекуррентного соотношения

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(2.4)

Функция f(x) удовлетворяет следующим условиям:

1) Является дважды дифференцируемой на отрезке [a;b];

2) Обе производные - первая и вторая - не меняют знак на этом отрезке, т.е. функция F(x) монотонна и не меняет характер выпуклости.

В таком ситуации за х0 берется тот конец отрезка [a;b], на котором функция f(x) и ее вторая производная имеют одинаковые знаки, т.е. выполняется условие МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

На каждом шаге построения итерационной последовательности буде проверять точность достижения корня с помощью неравенства:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах. (2.5)

Рассмотренный метод называется методом касательных потому, что если обратиться к графической иллюстрации , то точка х1, определяемая по формуле (2.4) при n=0, есть точка пересечения касательной, проведенной к графику y=f(x) в точке с абсциссой , определяемой предыдущим членом последовательности, с осью абсцисс.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Каждому следующему члену итерационной последовательности (2.4) соответствует точка пересечения касательной, проведенной к графику y=f(x) в точке с абсциссой х0, с осью абсцисс.


  1. Пример решения уравнений методом касательных

Пример: Уточнить корень уравнения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах на отрезке [1,3;1,5] методом касательных с точностью до 1.МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Решение: Формула (2.4) в нашем примере имеет вид

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

т.к . производная МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Для определения точки МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах найдем знаки МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах на концах отрезка [1,3;1,5]:

f (1, 3) = 0, 515501 - 0, 262363 = 0, 253137>0,

f (1, 5) = 0, 14112 - 0,405465 = - 0, 26435<0,

f" (1, 3) = -2,062 + 0,591716 = -1, 4703<0,

f" (1, 5) = -0, 56448 + 0, 4444 = - 0, 12<0.

Таким образом, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Вычислим несколько членов итерационной последовательности «ручным» способом:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Сделаем проверку (2.5) точности достижения корня:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, значит МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах- требуемая точность не достигнута.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Снова проверка:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах- требуемая точность достигнута.

Корень уравнения х1= 1, 399429 .


  1. Метод хорд


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

Если положить в (2.3) МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , а в качестве с взять тот конец промежутка [a;b], на котором МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , то приходим к итерационному методу:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, (2.6)

называемому методом хорд (или методом секущих).

В качестве х0 в этом случае следует принять тот конец промежутка [a;b], который остался после выбора с (т.е. если c=a, то x0=b или наоборот). Далее последовательность строится по формуле (2.6).

Оценка степени приближения к корню возможна с помощью неравенства (2.5).

На рисунке проиллюстрирован геометрический смысл метода.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

В данном случае c=b, x0=a, х1 соответствует точке пересечения хорды, соединяющей концы кривой, с осью абсцисс. Далее находится точка на кривой с абсциссой х1, проводится следующая хорда и т.д.


  1. Пример решения уравнений методом касательных

Пример: Уточнить корень уравнения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах на отрезке [1,3;1,5] методом хорд с точностью до 1.МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Решение: Точка с выбирается так же, как и точка х0 в предыдущем примере, т.е. с=1,5. Будем приближать точку х0= а = 1, 3.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Проверим, достигнута ли заданная точность.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах- требуемая точность не достигнута.

Найдём следующее приближение:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Проверим точность:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах- требуемая точность достигнута

Итак, корень уравнения х=1, 39941.


Задания практического занятия №3


Задание 1. Отделите корни заданного уравнения, пользуясь графическим методом. (см. практическое занятие №2)

Задание 2. По методу хорд вычислите один корень заданного уравнения с точностью 10-3.

а) с помощью «ручной» расчетной таблицы и калькулятора;

б) с помощью программы для компьютера.

Задание 3. По методу касательных вычислите один корень заданного уравнения с точностью 10-3.

а) с помощью «ручной» расчетной таблицы и калькулятора;

б) с помощью программы для компьютера.

Сопоставьте и прокомментируйте полученные результаты.

Номер варианта

Уравнение

Пояснения

1

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

3

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

При х<10

4

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

При х>-10

5

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

При х<5

6

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

8

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

9

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

10

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

11

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

12

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

13

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

14

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-

15

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-


Контрольные вопросы


  1. Дайте общее описание метода касательных?

  2. Дайте общее описание метода хорд?

  3. Нарисуйте геометрические схемы методов касательных и хорд.

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

  5. Как проверяется требуемая точность в методах?



Практическое занятие №4

«Решение систем линейных алгебраических уравнений методом Гаусса: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:


  • закрепить усвоение теоретического материала по данной теме через решение упражнений;

  • закрепить умения решать системы линейных уравнений методом Гаусса;

  • закрепить умения находить значения определителя системы методом Гаусса;

  • закрепить умения находить обратную матрицу методом Гаусса.



Теоретический материал и методические указания к выполнению заданий


  1. Системы линейных алгебраических уравнений

Множество прикладных и чисто математических задач приводят к необходимости решения систем линейных алгебраических уравнений (С.Л.А.У). Без преувеличения можно утверждать, что это одна из важнейших задач вычислительной математики.

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

Итак, перед нами система n линейных алгебраических уравнений с n неизвестными: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (2.7)

Запись ее в такой форме достаточно громоздка. Будем использовать матричную форму записи, совершенно равносильную (2.7): AХ=B,

где МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Методы решения С.Л.А.У. вида (2.7) можно разделить на два класса: точные и итерационные.

К точным методам относятся:

1. метод определителей (метод Крамера), хорошо известный из курса линейной алгебры;

2. матричное решение: X=A-1В (если известна обратная матрица);

3. различные варианты метода исключения неизвестных (метод Гаусса).

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

К итерационным методам относятся приближённые методы решения С.Л.А.У., основанные на применении принципа сжимающих отображений (метод Зейделя, метод простой итерации).


  1. Метод Гаусса решения систем уравнений

Под названием «метод Гаусса» фигурирует группа методов, объединенных идеей последовательного исключения неизвестных. Наиболее популярным является метод, основанный на так называемой схеме единственного деления; этот метод имеет также и ряд модификаций.

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

Будем считать матрицу системы (2.7) невырожденной, т.е. ее определитель не равен нулю.

Рассмотрим алгоритм, который получил название схемы единственного деления.

Подвергнем систему (3.1) следующим преобразованиям.

Считая, что МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (ведущий элемент), разделим на МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах коэффициенты первого уравнения: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (2.8)

Используя уравнение (2.8), легко исключить неизвестное xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах из остальных уравнений системы (достаточно из каждого уравнения вычесть уравнение (1), умноженное на соответствующий коэффициент при xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах).

Над остальными уравнениями системы совершим аналогичное преобразование: выберем из их числа уравнение с ведущим элементом и исключим с его помощью из остальных уравнений неизвестное МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Повторяя этот процесс, получим систему с треугольной матрицей:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(2.9)

Из системы (2.9) последовательно находим значения неизвестных МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Отметим, что последовательное исключение неизвестных называется прямым ходом метода Гаусса. Нахождение значений неизвестных - обратным ходом.

Пример: Решить систему линейных уравнений:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Решение: Запишем расширенную матрицу системы:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Так как, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , разделим элементы первой строки на 2,34. Затем из элементов второй строки вычтем элементы первой, умноженные на 8,04, а из элементов третьей - вычтем элементы первой, умноженные на 3,92.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Теперь элементы второй строки разделим на 19,685. И умножая их на (-0,938), вычтем из элементов третьей строки.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Элементы третьей строки, разделим на 29,732.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Так как в процессе решения выполнялись округления, то решение содержит вычислительную ошибку.

Определение: Значение разностей между свободных элементов исходной системы и результатами подстановки в уравнения системы найденных значений неизвестных называется невязками.

В рассмотренном примере невязки имеют следующие значения:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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


3. Вычисление определителей матриц

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

Вычисление определителя может представлять и самостоятельный интерес, т.к. такая задача нередко встречается в высшей математике.

Рассмотрим алгоритм вычисления определителя в связи с решением с.л.а.у. методом Гаусса по схеме единственного деления.

Обозначим определитель системы через D.

Что происходит с ним на каждом шаге реализации метода Гаусса?

1) МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах ;

2)МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах;

………………

n)МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

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

Практический вывод:

Если необходимо вычислить определитель некоторой квадратной матрицы, надо решить систему уравнений с этой матрицей и произвольной правой частью и воспользоваться формулой:МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

4. Применение метода Гаусса для вычисления обратной матрицы

Схема единственного деления может использоваться также и для вычисления элементов матрицы МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , обратной для невырожденной матрицы A. По определению, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах ,где E - единичная матрица.

Представим искомую матрицу МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и единичную матрицу Е в виде совокупности векторов-столбцов. В такой записи соотношение МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах предстанет в виде совокупности из n систем линейных уравнений вида МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Решение каждой системы дает соответствующий столбец обратной матрицы.

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


5. Пример нахождения обратной матрицы методом Гаусса

Пример: Дана матрица

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Найти обратную матрицу, пользуясь схемой единственного деления.

Решение:

Запишем данную и единичную матрицы в одну, и применим, к ним одновременно, элементарные преобразования схемы единственного деления:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Так как, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , разделим элементы первой строки на 2,34. Затем из элементов второй строки вычтем элементы первой, умноженные на 8,04, а из элементов третьей - вычтем элементы первой, умноженные на 3,92.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Теперь элементы второй строки разделим на 19,685. И умножая их на (-0,938), вычтем из элементов третьей строки.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Элементы третьей строки, разделим на 29,732.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Из элементов второй строки вычтем элементы третьей, умноженные на 2,0401.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Из элементов первой строки вычтем элементы третьей, умноженные на (-4,9615).

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Из элементов первой строки вычтем элементы второй, умноженные на (-1,7991).

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Матрица, полученная справа и является искомой обратной матрицей:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Сделаем прямую проверку:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Поскольку вычисления матрицы МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах велись с округлением, то наличие невязок, отражённых в матрице МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , является естественным.


Задания практического занятия №3

Задание 1

Дана система трех линейных уравнений с тремя неизвестными:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Решить систему методом Гаусса:

а) используя «ручную» схему единственного деления:

  • расчеты выполняйте с тремя знаками после запятой (с применением калькулятора);

  • подставьте найденные решения в исходную систему, вычислите невязки и сравните полученные решения;

  • выбрав ведущие элементы схемы единственного деления, найдите значения определителя системы;

  • для матрицы системы, по схеме единственного деления, найдите обратную матрицу.

б) с помощью программы для ЭВМ с пооперационным учетом ошибок.

Задание 2

Решите систему, используя одно из инструментальных средств (MS Excel). Сопоставьте найденное решение с решениями, полученными при выполнении задания 1.

Контрольные вопросы


  1. Какие методы решения с.л.а.у. вы знаете?

  2. В чем заключается прямой и обратный ход в схеме единственного деления?

  3. На чем основываются подходы к организации контроля вычислений в прямом ходе, обратном ходе?

  4. На чем основываются алгоритмы вычисления определителя по методу Гаусса?

  5. Каким образом схема единственного деления может использоваться для вычисления обратной матрицы?

Номер варианта

i

ai1

ai2

ai3

bi

1

1

2

3

0,21

0,30

0,60

-0,45

0,25

-0,35

-0,20

0,43

-0,25

1,91

0,32

1,83

2

1

2

3

-3

0,5

0,5

0,5

-6,0

0,5

0,5

0,5

-3

-56,5

-100

-210

3

1

2

3

0,45

-0,01

-0,35

-0,94

0,34

0,05

-0,15

0,06

0,63

-0,15

0,31

0,37

4

1

2

3

0,63

0,15

0,03

0,05

0,10

0,34

0,15

0,71

0,10

0,34

0,42

0,32

5

1

2

3

-0,20

-0,30

1,20

1,60

0,10

-0,20

-0,10

-1,50

0,30

0,30

0,40

-0,60

6

1

2

3

0,30

-0,10

0,05

1,20

-0,20

0,34

-0,20

1,60

0,10

-0,60

0,30

0,32

7

1

2

3

0,20

0,58

0,05

0,44

-0,29

0,34

0,81

0,05

0,10

0,74

0,02

0,32

8

1

2

3

6,36

7,42

5,77

11,75

19,03

7,48

10

11,75

6,36

-41,40

-49,49

-27,67

9

1

2

3

-9,11

7,61

-4,64

1,02

6,25

1,13

-0,73

-2,32

-8,88

-1,25

2,33

-3,75

10

1

2

3

-9,11

7,61

-4,64

-1,06

6,35

1,23

-0,67

-2,42

-8,88

-1,56

2,33

-3,57

11

1

2

3

1,02

6,25

1,13

-0,73

-2,32

-8,88

-9,11

7,62

4,64

-1,25

2,33

-3,75

12

1

2

3

0,06

0,99

1,01

0,92

0,01

0,02

0,03

0,07

0,99

-0,82

0,66

-0,98

13

1

2

3

0,10

0,04

0,91

-0,07

-0,99

1,04

-0,96

-0,85

0,19

-2,04

-3,73

-1,67

14

1

2

3

0,62

0,03

0,97

0,81

-1,11

0,02

0,77

-1,08

-1,08

-8,18

0,08

0,06

15

1

2

3

0,63

0,90

0,13

-0,37

0,99

-0,95

1,76

0,05

0,69

-9,29

0,12

0,69

Решение системы уравнений методом Гаусса - MS Office Excel


Для того чтобы решить данную систему уравнений в Excel, нужно выполнить следующие действия:

  1. Заполнить ячейки следующим образом (обратить внимание на названия и номера столбцов при заполнении - они должны быть такими же, как на рисунке):

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


  1. В ячейку E1 ввести текст Контрольные суммы, а в F1 - Строчные суммы.

  2. В ячейку E2 ввести формулу =СУММ(A2:D2) (для подсчета контрольных сумм) и методом протягивания заполнить ячейки E3, E4.

  3. После этого необходимо выполнить "Прямой ход" - преобразование исходной системы к системе с треугольной матрицей, на главной диагонали которой стоят единицы. Для этого нужно выполнить следующие действия:

  • Чтобы коэффициент при x1 равнялся 1, нужно в ячейку A5 ввести формулу =A2/$A$2, затем методом протягивания скопировать ее в ячейки B5:D5.

  • Над столбцом контрольных сумм необходимо выполнить те же действия, что и над коэффициентами при неизвестных, следовательно в ячейку E5 нужно ввести формулу =E2/$A$2.

  • В ячейку F6 ввести формулу =СУММ(A5:D5) (для подсчета строчных сумм).

  • В ячейку A6 ввести формулу =A3-$A$3*A5 (для обнуления коэффициента при x1 во втором уравнении системы), заполнить этой формулой методом протягивания диапазон ячеек B6:E6.

  • В ячейку A7 ввести формулу =A4-A5*$A$4 (для обнуления коэффициента при x1 в третьем уравнении системы), заполнить этой формулой методом протягивания диапазон ячеек B7:E7.

  • В ячейку B8 ввести формулу =B6/$B$6, заполнить этой формулой методом протягивания диапазон ячеек C8:E8.

  • В ячейку B9 ввести формулу =B7-B8*$B$7, заполнить этой формулой методом протягивания диапазон ячеек C9:E9.

  • В ячейку C10 ввести формулу =C9/$C$9, скопировать эту формулу в диапазон ячеек D10:E10.

  • Формулой из ячейки F5 методом протягивания заполнить ячейки F6:F10 (следует обратить внимание на то, что значения в столбцах строчных и контрольных сумм попарно равны).

  1. После этого необходимо выполнить "Обратный ход" - последовательное нахождение значений x3, x2, x1. Для этого нужно выполнить следующие действия:

  • В ячейки C11, B12, A13 ввести единицы.

  • В ячейку D11 ввести формулу =D10 и скопировать ее в ячейку E11.

  • В ячейку F11 ввести формулу =A11+B11+C11+D11.

  • В ячейку D12 ввести формулу =D8-C8*D11.

  • В ячейку E12 ввести формулу =E8-C8*E11.

  • В ячейку D13 ввести формулу =D5-C5*D11-B5*D12.

  • В ячейку E13 ввести формулу =E5-C5*E11-B5*E12.

  • Формулу из ячейки F11 скопировать диапазон ячеек F12:F13.

  1. Таким образом, получены x3, x2, x1. Для проверки правильности решения задачи необходимо выполнить следующие действия:

  • Диапазон ячеек A15:A18 последовательно заполнить следующими словами: проверка, 1 уравнение, 2 уравнение, 3 уравнение.

  • В ячейку C16 ввести формулу =A2*$D$13+B2*$D$12+C2*$D$11, затем скопировать ее в диапазон ячеек C17:C18.

  1. Нужно обратить внимание, что полученный результат в ячейках C17:C18 полностью совпадает с ячейками D2:D4, следовательно, задача решена верно.

Таким образом, получаем следующее:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Ответ: x1=3.333, x2 =3.561, x3 =3.782.

Практическое занятие №5

«Решение систем линейных алгебраических уравнений приближенными методами: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»


Цель занятия:

  • закрепить усвоение теоретического материала по данной теме через решение упражнений;

  • закрепить умения решать системы линейных уравнений приближенными методами(метод простой итерации, метод Зейделя).



Теоретический материал и методические указания к выполнению заданий


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


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

Приведём систему линейных алгебраических уравнений (2.7)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

к равносильной ей системе вида x=Ax:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(2.10)

В сокращенной форме: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

О системе (2.10) говорят, что она «приведена к нормальному виду».

Правая часть системы определяет отображение МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (2.11),

переводящее точку МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах в точку МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах . Используя отображения (2.11) и выбрав начальную точкуМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах можно построить итерационную последовательность точек.

Если отображение F является сжимающим, то эта последовательность сходится и её предел является решением системы (2.10) а, следовательно, и решением исходной системы (2.7).

Замечание: Отображение является сжимающим, если расстояние между образами меньше, чем расстояние между исходными точками.

Для отображения (2.11) необходимым и достаточным условием сжимаемости является следующее: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , (2.12), т.е. максимальная из сумм модулей коэффициентов при неизвестных в правой части системы (2.10), взятых по столбцам, должен быть меньше 1.

Практическая схема решения с.л.у. методом простой итерации


С.л.у. (2.7) необходимо привести к нормальному виду (2.10).

Для обеспечения сходимости итерационной последовательности необходимо, чтобы коэффициенты МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах при неизвестных в правой части системы были существенно меньше 1.

Этого можно достичь, если исходную систему (2.7) с помощью равносильных преобразований привести к системе, у которой абсолютная величина коэффициентов, стоящих на главной диагонали, больше абсолютных величин каждого из других коэффициентов, стоящих при неизвестных в соответствующих уровнях (такую систему называют системой с преобладающими диагональными коэффициентами). Если теперь разделить все уравнения на соответствующие диагональные коэффициенты и выразить из каждого уравнения неизвестное с коэффициентом, равным 1, будет получена система (2.10), у которой все МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Для проверки точности решения используем условие (2.12).

2. Пример решения систем линейных уравнений методом простой итерации


Пример: Решить систему линейных уравнений

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

методом простой итерации с точностью МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Решение:

Построим систему с преобладающими диагональными коэффициентами.

В качестве 1-ого уравнения возьмем 2-ое, в качестве 3-его уравнения - 1-ое, в качестве 2-ого уравнения - сумму 1-го и 2-го уравнений:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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


3. Метод Зейделя

Будем снова рассматривать систему линейных уравнений (2.7) и эквивалентную ей систему (2.10).

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

Обозначим элементы имеющегося приближения через МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , а элементы очередного (вычисляемого) приближения через МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Вычислительные формулы имеют вид:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Основная идея метода Зейделя состоит в том, что на каждом шаге итерационного процесса при вычислении значения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах учитываются уже полученные значенияМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах. Выпишем соответствующие вычислительные формулы:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Справедливо следующее утверждение:

Если для матрицы коэффициентов системы (2.10) выполняется условие (2.12), то итерационный процесс метода Зейделя сходится к решению системы при любом выборе начального приближения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Преимущество этого метода состоит в том, что он обеспечивает более быструю схожесть, чем метод простой итерации.

Пример:

Матрица системы

Правая часть

1

0,401

0,301

0,000

0,000

0,122

-0,029

-0,500

-0,018

0,000

-0,253

0,000

-0,050

-1,400

-0,039

-0,988

0,000

0,000

-0,007

-2,300

-2,082

Решение:

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


  1. Решим систему линейных уравнений методом прогонки.

Он является модификацией метода Гаусса для частного случая системы уравнений с трехдиагональной матрицей, которые имеют следующий вид:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Заданная система имеет трехдиагональную матрицу четвертого порядка и ее можно решать методом прогонки.

Из вида систему следует, что МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах . Следовательно система имеет единственное решение и для ее решения можно применить метод прогонки.

Прямой ход прогонки.

Вычислим прогоночные коэффициенты:

  1. Вычислим знаменатель

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


  1. МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


  1. МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


  1. МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Обратный ход прогонки.

Находим значения неизвестных:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Ответ: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


Итерационный метод

Метод Гаусса-Зейделя



  1. Решим систему методом Гаусса-Зейделя

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Запишем исходную систему в виде:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

В качестве начальных приближений возьмем нули, т.е. примем

x2(0) = x3(0)= x4(0)= 0.

Найдем значения неизвестных на первой итерации:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Далее произведем вторую итерацию:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Проверим точность:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Точность не достигнута.

Произведем третью итерацию:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Проверим точность:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Точность не достигнута.

Произведем четвертую итерацию:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Проверим точность:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Точность достигнута.

Решение системы с точностью 0,001:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Сравнение результатов

Метод

Х1

Х2

Х3

Х4

Гаусса-Зейделя

-0,060

0,486

0,663

0,903

Прогонки

-0,060

0,486

0,663

0,907


Задания практического занятия №5


  1. Решить систему линейных уравнений, коэффициенты которой приведены в таблице заданий методами прогонки, итерационным методом. Предварительно привести систему к треугольному виду.

  2. Решить систему на ЭВМ с помощью этих методов систему уравнений сравнить результаты.

Вариант

Матрица системы

Правая часть

1

-1,700

0,003

0,000

0,000

0,681

0,002

0,800

0,001

0,000

0,480

0,000

-0,002

-0,100

0,030

-0,802

0,000

0,000

-0,003

-1,600

-1,007


Матрица системы

Правая часть

2

-3,000

0,001

0,000

0,000

1,514

-0,011

2,100

0,520

0,000

1,478

0,000

0,005

1,200

0,600

1,083

0,000

0,000

-0,010

-0,300

-1,007


Матрица системы

Правая часть

3

4,300

0,217

0,000

0,000

2,663

0,100

-3,400

-0,207

0,000

2,778

0,000

0,090

2,500

0,197

2,533

0,000

0,000

0,080

-1,600

1,928

Матрица системы

Правая часть

4

-5,600

0,268

0,000

0,000

4,032

0,147

4,700

0,271

0,000

4,313

0,000

-0,150

-3,800

0,274

4,235

0,000

0,000

0,153

2,900

3,797

Матрица системы

Правая часть

5

-8,200

0,370

0,000

0,000

7,559

0,234

7,300

5,600

0,000

8,175

0,000

0,260

-0,340

0,422

8,421

0,000

0,000

0,268

5,500

8,322


Матрица системы

Правая часть

6

9,500

0,422

0,000

0,000

9,719

0,278

8,601

0,459

0,000

10,500

0,000

0,315

7,700

0,496

10,915

0,000

0,000

0,351

6,803

10,978


Матрица системы

Правая часть

7

10,800

-0,576

0,000

0,000

12,143

0,321

9,900

7,300

0,000

13,089

0,000

0,369

9,000

-6,060

13,674

0,000

0,000

0,416

8,100

13,897


Матрица системы

Правая часть

8

-1,100

0,528

0,000

0,000

14,830

0,365

0,113

0,536

0,000

15,941

0,000

-0,423

1,031

0,534

16,969

0,000

0,000

0,481

-0,570

17,081


Матрица системы

Правая часть

9

13,400

0,581

0,000

0,000

17,782

-0,408

12,500

-0,650

0,000

19,593

0,000

0,477

-11,600

0,781

19,974

0,000

0,000

0,546

10,700

20,528





Матрица системы

Правая часть

10

30,300

0,153

0,000

0,000

80,168

0,975

-29,400

0,011

0,000

83,578

0,000

0,117

-2,500

1,660

86,609

0,000

0,000

10,700

27,600

89,278


Матрица системы

Правая часть

11

0,161

0,332

0,000

0,000

86,814

0,109

-0,301

-0,150

0,000

90,358

0,000

-0,060

0,171

0,051

19,861

0,000

0,000

0,145

-0,298

93,502


Матрица системы

Правая часть

12

13,400

0,581

0,000

0,000

17,782

-0,408

12,500

-0,650

0,000

19,593

0,000

0,477

-11,600

0,781

19,974

0,000

0,000

0,546

10,700

20,528

Контрольные вопросы


  1. Каким образом система линейных уравнений преобразуется к итерационному виду?

  2. Как сформулировать условие сходимости итерационного процесса

  3. Как привести исходную систему линейных уравнений к системе с преобладающими диагональными элементами?

  4. Постройте блок-схему решения системы линейных уравнений методом простой итерации.

  5. В чем состоит отличие метода Зейделя от аналогичного процесса простой итерации?

  6. Постройте блок-схему решения системы линейных уравнений методом Зейделя.

Практическое занятие №6

«Составление интерполяционных формул Лагранжа и Ньютона: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:

  • закрепить усвоение теоретического материала по данной теме через решение упражнений;

  • закрепить умения составлять интерполяционные формулы Лагранжа.


Теоретический материал и методические указания к выполнению заданий


1. Постановка задачи аппроксимации функций


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

Поводом для аппроксимации функции может послужить, в частности, табличный способ её задания. Предположим, что результате некоторого эксперимента для конечного набора значений МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах величины x из отрезка [a;b]: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

получен набор значений МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах величины у (таблица 3.1).

таблица 3.1

x

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

F(x)

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Допустим, существует функциональная зависимость y=F(x).

Необходимо задать F(x) аналитически.

Точки МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах называют узлами аппроксимации.

Классический подход к численному решению подобных задач заключается в том, чтобы, опираясь на информацию о функции F, по некоторому алгоритму подобрать аппроксимирующую функцию G, в определенном смысле «близкую» к F.

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

Для оценки «близости» функций выбирают тот или иной критерий согласия.

Для функций, заданных таблично, достаточно распространенным является критерий Чебышева, который определяет расстояниеМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах между аппроксимируемой и аппроксимирующей функциями как максимум величины отклонения между этими функциями в узлах: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (3.1)

Если МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах =0, т.е. МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (в узлах значения совпадают), то соответствующий способ аппроксимации называют интерполяцией, а процедуру вычисления значений F(x) с помощью G(x) в точках, не являющихся узлами сетки, - интерполированием.

Часто процедура аппроксимации связана с другим критерием согласия:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Применяемый на его основе способ аппроксимации называется методом наименьших квадратов.

2. Существование и единственность интерполяционного многочлена


Пусть известны значения некоторой функции F(x):


x

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

F(x)

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Будем решать задачу интерполирования этой функции с помощью построения интерполяционного многочлена n-ой степени.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.2)

который в узлах МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах принимает значения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.3)

Условия интерполяции (3.3) приводят к системе из (n+1) линейных уравнений с (n+1) неизвестными - коэффициентами многочлена:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.4)

Решая эту с.л.у. относительно МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах получим аналитическое выражение многочлена (3.2).

Система (3.4) всегда будет иметь единственное решение, поскольку ее определитель не будет равен нулю. Отсюда и вытекает существование и единственность решения системы (3.4) и, следовательно, многочлена (3.2).

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


3. Интерполяционный многочлен Лагранжа


Пусть функция F(x) задана таблицей (3.1).

Построим многочлен Ln(x), степень которого не выше, чем n, и для которого выполнены условия интерполяции

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.5)

Будем искать Ln(x) в виде

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.6),

где МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах - многочлен степени n, причем

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.7).

Очевидно, что требования (3.7) с учётом (3.6) вполне обеспечивает выполнение условий (3.5). Многочлен МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах составим следующим образом:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.8)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах- коэффициент, значение которого найдем из первой части условия (3.7):

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Подставим МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах в (3.8) и далее с учётом (3.6) получим:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.9)

Это и есть интерполяционный многочлен Лагранжа.

По таблице исходной функции F формула (3.9) позволяет довольно просто составить «внешний вид» многочлена.

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

х

1

3

4

F(x)

12

4

6

Решение:

Из таблицы следует, что n=2 (на 1 меньше, чем узлов).

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

По формуле (3.9) получаем:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Таким образом, интерполяционный многочлен для заданной функции имеет вид МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Построим графикМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и точки в одной координатной плоскости.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


Задания практического занятия №6

Задание 1. По заданной таблице значений функции

х

х0

х1

х2

х3

у

у0

у1

у2

у3

составить формулу интерполяционного многочлена Лагранжа. Построить его график и отметить на нем узловые точки.

Задание 2. Вычислить с помощью калькулятора одно значение заданной функции для промежуточного значения аргумента с помощью интерполяционного многочлена Лагранжа и оценить погрешность интерполяции.

Задание 3. Составить программу вычисления значения функции в точке, используя интерполяционный многочлен Лагранжа.

Задание 4. Сравнить результаты заданий 2 и 3.

Таблица 1


Вариант

х0

х1

х2

х3

у0

у1

у2

у3

х

1

-1

0

3

4

-3

5

2

-6

3,8

2

2

3

5

6

4

1

7

2

3,5

3

0

2

3

5

-1

-4

2

-8

0,5

4

7

9

13

15

2

-2

3

-4

4,8

5

-3

-1

3

5

7

-1

4

-6

4,1

6

1

2

4

7

-3

-7

2

8

3,9

7

-1

-1

2

4

4

9

1

6

3,3

8

2

4

5

7

9

-3

6

-2

4,0

9

-4

-2

0

3

2

8

5

10

2,9

10

-1

1,5

3

5

4

-7

1

-8

5,3

11

2

4

7

8

-1

-6

3

12

4,1

12

-9

-7

-4

-1

3

-3

4

-9

7,6

13

0

1

4

6

7

-1

8

2

4,4

14

-8

-5

0

2

9

-2

4

6

2,5

15

-7

-5

-4

-1

4

-4

5

10

5,2

Контрольные вопросы


  1. В каких случаях может потребоваться аппроксимация функции?

  2. Какими критериями пользуются для определения «близости» функции?

  3. На чем основывается доказательство существования и единственности интерполяционного многочлена для таблично заданной функции?

  4. В какой форме строится интерполяционный многочлен Лагранжа?

Практическое занятие №7

«Интерполирование сплайнами: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:

  • закрепить умения интерполировать функцию сплайнами и находить ее значение в заданной точке.

  • Овладение вычислительными методами и практическими методами оценки погрешности вычислений.

  • Приобретение умений и навыков при программировании и отладке вычислительных задач на компьютере



Теоретический материал и методические указания к выполнению заданий


  1. Интерполяция сплайнами


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

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

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

В этом случае удобно пользоваться особым видом кусочно-полиномиальной интерполяции - интерполяции сплайнами.

Суть этого подхода заключается в следующем:

Определение: Функция Sm (x) называется интерполяционным сплайном порядка m для функции f(x), заданной таблицей:

x

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

y

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

если:

  1. на каждом отрезке [xi ; xi+1] (i=0,…,n-1) S(x) является многочленом порядка m;

  2. S(x) и её производная до (m-1)-го порядка включительно непрерывны на [x0 ; xn];

  3. S(xi)=yi(i=0,…,n) - непосредственно условие интерполяции.

Остановимся на построении наиболее популярных в практике аппроксимации функций кубических сплайнов.

По определению кубический сплайн S(x) можно представить в виде

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (3.17)

Где каждый из МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах - многочлен третьей степени:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах . (3.18)

Коэффициенты МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах найдем из условия: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , т.е.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (3.19)

Условие непрерывности S(x) в каждом узле приводит к равенствам:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

В развернутом виде с учетом формулы (3.18) эти равенства примут вид:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (3.20)

Введем обозначения: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Понижая в равенстве (3.20) индекс на единицу (меняем i на i-1) и, учитывая (3.19), получим:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.21)

Условие непрерывности первой производной кубического сплайна сводится к требованию МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Тогда дифференцируя формулу (3.18) и используя, введите обозначения, получим:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах) (3.22)

Из условия непрерывности второй производной: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах получим:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах) (3.23)

Составим систему из равенств (3.21)-(3.23) и, решив её, найдем коэффициенты МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Однако, для однозначной ее разрешимости добавим условия непрерывности на концах отрезка: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах т.е.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.24)

В результате получаем систему уравнений:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.25)

(это уравнение содержит лишь неизвестные МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах ).

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.26)

(это уравнение содержит лишь неизвестные МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах ).

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(3.27)

(это уравнение содержит лишь неизвестные МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах ).

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

где МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах - промежуток интерполяции.


  1. Пример построения кубического сплайна для функции y=f(x), заданной таблично

Пример: Построить кубический сплайн для функции y=f(x), заданной таблицей:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-1

0

1

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1/2

1

2

4

с дополнительным условием: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах . Найти с помощью S(x) значения функции при x=0,3. (Заметим, что в основу таблицы положена функция у =2x).

Решение: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (т.к. не используется в функциях) и МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (т.к. из условия (3.24):МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах).

Шаг таблицы МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

из (3.25) получаем:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Из (3.26) имеем:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Из (3.27) имеем:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

из формулы (3.28) получаем:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Следовательно, сплайн S(x) построен:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Найдем его значение при x=0,3:

Заметим, что 0,3МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах[0;1], поэтому используем многочлен МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах :

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Отметим для сопоставления с той же точностью значение функции, положенной в основу данного примера:МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

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

Задания практического занятия №7


Задание 1. По заданной таблице значений функции

х

х0

х1

х2

х3

у

у0

у1

у2

у3

вычислить коэффициенты и составить формулы кубического сплайна.

Задание 2. Результат интерполирования проверить путем вычисления значений сплайна в узловых точках.

Задание 3. Составить программу вычисления значения функции в точке, используя интерполяцию сплайнами.

Задание 4. Сравнить результаты заданий 1 и 5.

Таблица 1

Вариант

х0

х1

х2

х3

у0

у1

у2

у3

х

1

-1

0

1

2

-3

5

2

-6

3,8

2

2

3

4

5

4

1

7

2

3,5

3

0

2

4

6

-1

-4

2

-8

0,5

4

7

9

11

13

2

-2

3

-4

4,8

5

-3

-1

1

3

7

-1

4

-6

4,1

6

1

2

3

4

-3

-7

2

8

3,9

7

-1

1

3

5

4

9

1

6

3,3

8

2

4

6

7

9

-3

6

-2

4,0

9

-4

-2

0

2

2

8

5

10

2,9

10

-1

0

1

2

4

-7

1

-8

5,3

11

2

4

6

8

-1

-6

3

12

4,1

12

-9

-7

-5

-3

3

-3

4

-9

7,6

13

0

1

2

3

7

-1

8

2

4,4

14

-8

-7

-6

-5

9

-2

4

6

2,5

15

-7

-5

-3

-1

4

-4

5

10

5,2

Контрольные вопросы:



  1. Как ставится задача интерполяции?

  2. Какие виды интерполяции вы знаете?

  1. В чем суть и геометрический смысл линейной интерполяции?

  2. Как выглядит оценка точности при интерполировании многочленом?

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

  4. Что такое сплайн-интерполяция и в чем ее суть?

  5. Какие трудности возникают при интерполировании сплайнами?

Практическое занятие №8

«Вычисление интегралов при помощи формул Ньютона-Котеса: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:

  • закрепить усвоение теоретического материала по данной теме через решение упражнений;

  • закрепить умения приближенно вычислять интегралы при помощи формул Ньютона-Котеса (формула прямоугольников, формула трапеций, формула парабол (Симпсона));


Теоретический материал и методические указания к выполнению заданий


  1. Подстановка задачи численного интеграла

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

где f(x) - функция непрерывная на отрезке [a,b] используется формула Ньютона - Лейбница:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.1)

Однако бывают случаи, когда первообразную F(x) нельзя найти, или не всегда удается довести вычисления до числового значения. Иногда подынтегральная функция может быть задана таблично или графиком, поэтому формула (4.1) не исчерпывает практических приемов вычисления интегралов.

На практике часто применяют различные методы приближенного (численного) интегрирования.

Определение: Формулы, используемые для приближенного вычисления интегралов, называют квадратурными формулами.

Простой прием построения квадратурных формул состоит в том, что подынтегральная функция f(x) заменяется на отрезке [a;b] интерполяционным многочленом Лагранжа Ln(x), и тогда:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах. (4.2)

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


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

Для вычисления определенного интеграла МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах отрезок [a;b] разбивают на n криволинейную трапецию, заменяют прямоугольником с основанием МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , и высотой МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах соответственно.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Данный подход к решению задачи дает площадь криволинейной трапеции, т.е. значение определенного интеграла с недостатком

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах. (4.5)

Формула (4.5) называется формулой прямоугольников с недостатком.

Аналогично можно получить формулу для вычисления определенного интеграла с избытком.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.6)

Формула (4.6) называется формулой прямоугольников с избытком.

где значение

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах. (4.7)

Пример: Вычислить по формуле прямоугольников интеграл

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(n=5).

Решение:

Имеем a=0, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Тогда МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Вычислим значение функции по формуле (4.7):

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Применяя формулу прямоугольника с недостатком (4.2) получим

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Вычислим данный интеграл по формуле Ньютона - Лейбница и сравним результаты:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Относительная погрешность вычисления:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.


  1. Метод трапеций


Геометрический смысл этого метода практического вычисления определенного интеграла состоит в том, что нахождение площади криволинейной трапеции заменяется нахождением площади приблизительно равновеликой прямолинейной трапеции.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах


МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.8)

Для повышения точности результата разобьём фигуру на n частей, а затем суммируем площади получившихся трапеций:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.9)

где МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Формула (4.9) называется формулой трапеций.

Пример: По формуле трапеции вычислить интеграл

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(n=5).

Решение: Имеем a=0, b=5, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Вычислим промежуточные значения функции в узлах:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Тогда по формуле трапеций (4.9) имеем:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.


  1. Метод парабол


Замена подынтегральной функции f(x) параболой, проходящей через точки Mi(xi; yi), (i=0,1,2) позволяет получать более точное значение определенного интеграла.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Если считать, что n - четное (n=2m), то получим:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.10)

где МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Формула (4.10) называется формулой парабол или формулой Симпсона.

Для оценки погрешности формулы Симпсона применяется формула

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, (4.11)

Как следует из оценки, формула Симпсона, оказывается точной для многочленов до 3-ей степени включительно. Так как для этих случаев производная 4-го порядка равна 0.

Формула Симпсона обладает повышенной точностью по сравнению с формулой трапеций, это обозначает, что для достижения той же точности, что и в формуле трапеций, в ней можно брать меньшее число n - отрезков разбиения. Последнее обстоятельство весьма важно для вычислений. Поскольку основное время затрачивается на нахождение значений функции в узлах. Укажем простой практический прием, позволяющий прогнозировать требуемое число отрезков разбиения по заданной точностиМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, (4.12)

Пример: Вычислить интеграл по формуле парабол

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, (n=10).

Решение: Значения подынтегральной функции в узловых точках запишем в таблицу:


xi

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0

0

0,1

0,0019966

0,2

0,0079467

0,3

0,0531936

0,4

0,0623068

0,5

0,2397124

0,6

0,2032711

0,7

0,6313333

0,8

0,4591078

0,9

1,2689896

1

0,841478

Подставим найденные значения в формулу Симпсона, учитывая, что h=0,1:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

В данном случае легко вычислить «точное» значение этого интеграла, пользуясь формулой Ньютона - Лейбница

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

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


Задания практического занятия №8

Задание 1.

Вычислить интеграл от заданной функции f(x) на отрезке [a;b] при делении отрезка на 10 равных частей тремя способами:

  1. по формуле прямоугольников;

  2. по формуле трапеций;

  3. по формуле Симпсона;

Сравнить точность полученных результатов.

Задание 2.

С помощью программ на компьютере вычислить значение интеграла заданной функции на отрезке [a;b]:

  1. по формуле прямоугольников;

  2. по формуле трапеций;

  3. по формуле Симпсона.

Задание 3.

Вычислить интеграл вручную по формуле Ньютона-Лейбница

Сравнить полученные результаты с результатами, полученными при выполнении задания 1 и 2.


Таблица 1

Вариант

f(x)

a

b

1

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

3

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2

3

4

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

5

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1.2

2.2

6

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.5

1.5

7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2

3

8

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3

4

9

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

10

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-1

0

11

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-0.5

0.5

12

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,1

1,1

13

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.2

1.2

14

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1.5

2.5

15

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.1

1.1

Контрольные вопросы

  1. Почему формула Ньютона-Котеса может оказаться непригодной для реального вычисления определенного интеграла?

  2. Как связаны задачи численного интегрирования и интерполирования?

  3. Чем объясняется название формулы прямоугольников?

  4. Чем объясняется название формулы трапеций?

  5. В чем выражается преимущества формулы Симпсона перед формулой трапеций?

  6. Каким образом при использовании формулы парабол можно рассчитать требуемое число отрезков разбиения для достижения заданной точности интегрирования МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах ?



Практическое занятие №9

«Вычисление интегралов при помощи формул Гаусса: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»


Цель занятия:

  • закрепить усвоение теоретического материала по данной теме через решение упражнений;

  • получить умения приближенно вычислять интегралы при помощи формул Ньютона-Котеса (формулаГаусса);


Теоретический материал и методические указания к выполнению заданий


Квадратные формулы Гаусса


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

При получении квадратных формул Гаусса в исходном интеграле выполняется замена переменной, переводящая интеграл по отрезку [a;b] в интеграл по отрезку [-1;1].

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахили МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах (4.13)

Тогда

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.14)

Последний интеграл обозначим МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и можно далее, развивать метод Гаусса применительно к нему.

Для разъяснения существа метода Гаусса будем использовать простейшую (линейную) интерполяцию подынтегральной функции:

Если в качестве узлов интерполяции взять концы отрезка [-1;1], то различие в площадях криволинейной трапеции, ограниченной сверху кривой МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах и «обычной» трапеции, ограниченной сверху прямой, проведённой через концы указанной кривой, фиксировано видом функции МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

Более того, можно сделать эти площади равными МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , т.е. аппроксимировать интеграл точно, но для этого необходимо определить точки МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Сформулируем задачу следующим образом:

Выбрать значения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах так, чтобы площадь трапеции, ограниченной сверху прямой, проходящей через точкиМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, была равна интегралу от любого многочлена некоторой (наивысшей возможной) степени.

Так как положение точек МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах определяют четыре координаты, то это многочлен может определяться максимум четырьмя коэффициентами, т.е. является многочленом третьей степени.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.15)

Легко установить, что уравнение прямой, проходящей через точки МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах имеет вид: МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , (4.16)

где МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Будем выбирать МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах так, чтобы равенство

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.17)

имело место при любых МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Вычисляя значения МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , получим:

Если взять узлами линейной интерполяции числаМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.18) ,то интеграл, вычисленный по формулеМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,точно совпадает с интегралом от любого многочлена третьей степени.

Вычислив интеграл по указанной формуле с учётом (4.18), получим

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.19)

Формула (4.19) и называется квадратурной формулой Гаусса.

С учетом формулы (4.14) формула Гаусса примет вид:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.20)

Оценка погрешности вычисления интеграла по формуле (4.19) проводится по формуле:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системахМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.21)

Для повышения точности результата отрезок [a;b] разделим на n частей и применим формулу (4.20) на каждом из них.

Получим формулу для вычисления интеграла:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.22)

Формула для оценки погрешности примет вид:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(4.23)

Пример: Вычислить интеграл МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах по формуле Гаусса при n = 10.

Решение: Имеем a = 0, b = 1, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Тогда МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Составим таблицу значений, входящих в формулу (4.22)


МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0

0,02113249

0,078868

0,00000944

0,00049005

0,1

0,121132249

0,178868

0,00177304

0,00569215

0,2

0,22113249

0,278868

0,01072537

0,02140672

0,3

0,32113249

0,378868

0,03255086

0,05309115

0,4

0,42113249

0,478868

0,07250071

0,10566206

0,5

0,52113249

0,578868

0,13520907

0,18331848

0,6

0,62113249

0,678868

0,22452206

0,28938023

0,7

0,72113249

0,778868

0,34334373

0,42614496

0,8

0,82113249

0,878868

0,49350196

0,59476723

0,9

0,92113249

0,978868

0,67563779

0,795162236

1,0







МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.


Задания практического занятия №9

Задание 1.

Вычислить интеграл по формуле Гаусса от заданной функции f(x) на отрезке [a;b] при делении отрезка на 10 равных частей. Вычисления провести в Excel.

Задание 2.

Сравнить полученный результат с результатами, полученными на практическом занятии №8.

Результаты оформить в таблицу:

Метод интегрирования

Значение интеграла

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

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

Метод парабол

Метод Гаусса


Задание 3.

Сделать вывод о точности методов.


Таблица 1

Вариант

f(x)

a

b

1

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

3

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2

3

4

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

5

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1.2

2.2

6

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.5

1.5

7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2

3

8

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3

4

9

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

2

10

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-1

0

11

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

-0.5

0.5

12

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0,1

1,1

13

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.2

1.2

14

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1.5

2.5

15

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.1

1.1

Контрольные вопросы


  1. На какой идее основывается построение квадратурных формул Гаусса?

  2. Запишите формулу Гаусса.

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


Практическое занятие №10

«Нахождение решений обыкновенных дифференциальных уравнений с использованием методов Эйлера: разработка алгоритма и программы для решения вычислительных задач, учитывая необходимую точность получаемого результата»

Цель занятия:

  • закрепить усвоение теоретического материала по данной теме через решение упражнений;

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


Теоретический материал и методические указания к выполнению заданий

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


Постановка задач

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

y'=f(x,y) (5.1)

Эта задача известна, как задача Коши: найти решение уравнения (5.1) в виде функции y(x), удовлетворяющей начальному условию

y(x0) = y0. (5.2)

Геометрически это означает, что требуется найти интегральную кривую y=y(x), проходящую через заданную точку М0 (x0,y0), при выполнении равенства (5.1).

Существует несколько классов дифференциальных уравнений 1-го порядка, для которых решение может быть найдено аналитически. Но даже для таких уравнений решение не всегда удается довести до вида y=y(x). Многие же дифференциальные уравнения, к которым приводят математические модели реальных процессов, не могут быть решены аналитически. По этой причине разработаны многочисленные методы приближенного решения дифференциальных уравнений.

Эти методы подразделяются на 3 основные группы:

  1. аналитические методы, применения которых дает приближенное решение дифференциальных уравнений в виде формулы;

  2. графические методы, дающие приближенное решение в виде графика;

  3. численные методы, когда искомая функция получается в виде таблицы.


Метод Эйлера


В основе метода ломанных Эйлера лежит идея графического построения решения дифференциального уравнения. Однако этот метод дает одновременно и способ нахождения искомой функции в численной (табличной) форме.

Пусть дано уравнение (5.1) с начальным условием (5.2), т.е. поставлена раздача Коши.

Вначале найдем простейшим способом приближенное значение решения в некоторой точке МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , где h - достаточно малый шаг.

Заметим, что уравнение (5.1) совместно с начальным условием (5.2) задают направление касательной к искомой интегральной кривой в точке ММЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(xМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах). Двигаясь вдоль этой касательной, получим приближенное значение решения в точке хМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(5.3)

Аналогично, найдем приближенное значение решения в точке МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , и т.д.

Продолжая эту идею, построим систему равностоящих точек МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , i=0,..,n.

Получение таблицы значений искомой функции y(x) по методу Эйлера заключается в циклическом применении пары формул:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(5.4)

Геометрическая иллюстрация метода Эйлера:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Рис 5.1 Построение ломаной Эйлера


Вместо кривой в реальности получается совокупность прямых - ломаная Эйлера.

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

Метод Эйлера - простейший пошаговый метод.

Отметим, что оценка погрешности метода при таком элементарном рассмотрении невозможна даже на первом шаге. Кроме того, особенностью любого пошагового метода является то, что, начиная со второго шага, исходное значение yМЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах в формуле (5.4) само является приближенным, т.е. погрешность на каждом шаге систематически возрастает.

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

Пример: Решить методом Эйлера дифференциальное уравнение МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах c начальным условием y(0) = 1,3 на отрезке [0;1] применив h=0,2.

Решение: Имеем МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах .

Составим таблицу значений функции f(x,y) с шагом h и h/2.


x

yi (h=0.2)

yi (h=0.1)

0

1.3

1.3

0.1


1.33

0.2

1.35

1.38

0.3


1.46

0.4

1.52

1.56

0.5


1.68

0.6

1.77

1.82

0.7


1.98

0.8

2.09

2.15

0.9


2.33

1

2.47

2.53

При составлении таблицы проводились следующие вычисления:

Если h=0,2:

  1. х0=0, у0=1,3 из начального условия;

  2. х1=0,1,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

  1. х2=0,2,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

И т.д.

Аналогичные вычисления проводились и для h=0,1.

Таким образом, приближенное решение уравнения получаем в виде таблицы. Построим ломаную Эйлера для h=0,2 и h=0,1 в одной системе координат.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Метод Рунге-Кутта

Если к методу Эйлера подойти другим путем, не используя геометрических построений, то необходимо рассматривать производные функции f(x,y) и раскладывать эту функцию в степенной ряд. Но нахождение производных не является стандартной задачей, применяемой при решении математических задач систем программирования.

Альтернативный путь открывает метод Рунге-Кутта, названный по имени его создателей.

Основная идея метода Рунге-Кутта такова: вместо использования в формулах частных производных функции f(x,y) использовать лишь саму эту функцию, но на каждом шаге вычислять ее значение в нескольких точках.

На практике соблюдается некоторый компромисс между высоким порядком формул и их громоздкостью с одной стороны, и объемом вычислений по ним для достижения заданной точности, с другой. Запишем самую распространяемую формулу Рунге-Кутта четвертого порядка:МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах, (5.5)

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах(5.6)

Общий недостаток методов Рунге-Кутта - отсутствие простых способов оценки погрешности метода. Погрешность на одном шаге оценить сравнительно не трудно, гораздо труднее оценить накопление погрешностей на протяжении многих шагов. Широко используемый на практике для этих методов способ контроля точности - двойной счет: вычисляем решение дифференциального уравнение с шагом h и h/2 , а потом сравниваем полученные результаты.

Пример: Решить дифференциальное уравнение МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах на отрезке МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах с начальным условием у(0)=1 и шагом h=0.05.

Решение: Сначала решим это уравнение аналитически:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах- уравнение с разделяющимися переменными.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах,

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Применим начальное условие МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах , получим:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Таким образом, частное решение данного уравнения, удовлетворяющее заданному начальному условию:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах.

Пользуясь этой формулой, можно получить таблицу «точного» решение уравнения.

Найдем приближенное решение дифференциальное уравнение по методу Рунге-Кутта. Проведем последовательные вычисления по формулам (5.5), (5.6):

Имеем: f(x,y)=y(1-x), МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах =0, МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах =1, h=0.05. Тогда

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Подставим найденные значения в формулу (5.5):

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

Для сравнения результатов построим таблицу, в которой укажем численные решения, полученные по методу Эйлера, методу Рунге-Кутта и «точное решение».


Х

У

метод Эйлера

метод Рунге-Кутта

«точное решение»

0,00

0,05

0,10

0,15

0,20

0,25

0,30

0,35

0,40

0,45

0,50

1

1,05

1,0999

1,1494

1,1982

1,2462

1,2929

1,3381

1,3816

1,4231

1,4622

1

1,0499

1,0997

1,1488

1,1972

1,2445

1,2905

1,3348

1,3771

1,4173

1,4550

1

1,0499

1,0997

1,1488

1,1972

1,2445

1,2905

1,3348

1,3771

1,4173

1,4550

Из таблицы видно, что результаты, получения по методу Рунге-Кутта практически совпадают с «точным» решением уравнения, в отличие от соответствующих значений, полученных по методу Эйлера.


Задания практического занятия №10

Задание 1.

Решить задачу Коши для дифференциального уравнения y'=f(x,y) на отрезке [a;b] при заданном начальном условии y(a)=y0 и шаге интегрирования h методом Эйлера:

а) с применением «ручных» вычислений с шагом 2h.

б) с помощью программы для компьютера с шагом h.

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

Задание 2

Решить задачу Коши для дифференциального уравнения y'=f(x,y) на отрезке [a;b] при заданном начальном условии y(a)=y0 методом Рунге-Кутта с помощью программы для компьютера с шагом h и с шагом h/2.

На основе результатов двойного счета сделать вывод о точности полученного решения.

Задание 3

Найти точное решение задачи Коши.

Таблица 1

Вариант

f(x)

a

b

y0

h

1

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3

5

1

0.2

2

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2.6

4.6

1

0.2

3

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0

2

0

0.2

4

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

3

1

0.2

5

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0

2

0

0.2

6

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

3

1

0.2

7

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.5

2.5

0

0.2

8

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.2

2.2

1

0.2

9

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

3

2

0.2

10

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

3

5

1

0.2

11

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

0.2

2.4

1

0.2

12

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1

3

0

0.2

13

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2.6

4,6

2

0.2

14

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

1.5

3,5

0

0.2

15

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

2.1

4.1

0

0.2

Контрольные вопросы


  1. Что является решением дифференциального уравнения?

  2. На какие группы подразделяются приближенные методы решения дифференциальных уравнений?

  3. В какой форме получается приближенное решение дифференциального уравнения по методу Эйлера?

  4. В чем основная идея метода Рунге-Кутта?

  5. В чем отличие одношаговых методов Эйлера и Рунге-Кутта?

Приложение 1 Практическое занятие №2



Блок схема алгоритма метода половинного деления:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах





Программа реализации метода половинного деления

для уточнения корня уравнения f(x)=0 на отрезке [a;b] с точностью eps



{ Практическое занятие №2 Метод деления пополам

Выполнил студент 3 курса гр. Ф.И.О.}

Program metod_polov_deltnia;

Label M,M1;

Var c,d,e,x,y,z:Real;

k:Integer;

Begin

Write('Введите с='); ReadLn(c);

Write('Введите d='); ReadLn(d);

Write('Введите е='); ReadLn(e);

z:=cos(1.1*x)/sin(1.1*x)-2*x; {впишите свою функцию}

k:=0;

M: x:=(c+d)/2;

If (d-c)/2<=e then

Begin

WriteLn('x=',x);

WriteLn('k=',k);

GOTO M1;

End

else

Begin

y:=exp(x*Ln(5))-6*x+3;

k:=k+1;

If y*z>0 then

Begin

c:=x; z:=y;

GOTO M;

End

else

Begin

d:=x;

GOTO M;

End;

End;

M1: End.

Приложение 2 Практическое занятие №3



Блок схема алгоритма метода касательных:

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах



Программа реализации метода касательных

для уточнения корня уравнения f(x)=0 на отрезке [a;b] с точностью eps



{ Практическое занятие №3 Метод касательных

Выполнил студент 3 курса гр. Ф.И.О.}

Program metod_Newton;

Label M,M1;

Var c,d,e,x,y,z:real;

k:Integer;

Begin

Write('Введите с='); ReadLn(c);

Write('Введите d='); ReadLn(d);

Write('Введите е='); ReadLn(e);

x:=(c+d)/2;

k:=0;

M: z:=( cos(1.1*x)/sin(1.1*x)-2*x)/( -(1.1/(sin(1.1*x)*sin(1.1*x))+2)) ; {впишите МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах }

y:=x-z;

If abs(y-x)<=e then

Begin

WriteLn('y=',y);

WriteLn('k=',k);

GOTO M1;

End

else

Begin

x:=y;

k:=k+1;

GOTO M;

End;

M1: End.

Приложение 3 Практическое занятие №4

Укрупнённая схема алгоритма (блок-схема) метода Гаусса

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Алгоритмы отдельных блоков метода

Блок 2. С помощью двух вложенных циклов с управляющими переменными i=1,n и j=1,k организуем ввод коэффициентов ai,j и свободных членов bi исходной системы. Для того, чтобы в дальнейшем можно было выполнить в блоке 9 проверку результата, в алгоритме предусмотрено сохранение значений ai,j и bi исходной системы с помощью переприсвоений: cij=aij и di=bi

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Блок 3. Организуем цикл по k, внутри которого производится вычисление по всем шагам прямого хода. Последний п-й шаг прямого хода выводим из цикла.

Блок 4. На каждом шаге прямого хода выполняем поиск ненулевого ведущего элемента.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Блок 5 - шаг прямого хода. На каждом шаге прямого хода проводим исключение неизвестных путём преобразования коэффициентов и свободных членов системы по полученным ранее рекуррентным формулам.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Блок 6. В этом блоке выведем из цикла по k последний шаг прямого хода, т.к. на этом шаге не нужны преобразования коэффициентов и свободных членов, а реализуется только одно вычисление : xn=bn/an,n

Блок 7 - обратный ход. В процессе обратного хода метода Гаусса из системы треугольного вида последовательно в обратном порядке в цикле по i=(n-1),1,-1 находим неизвестные системы по рекуррентной формуле : bi= bi - xj.ai,j , i=(n-1),1, j=(n+1),n.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Блок 9 - проверка результата. В этом блоке подставляя значения полученных неизвестных в исходную систему и используя сохранённые значения коэффициентов системы ci,j и свободных членов di, проводим проверку решения задачи по формуле

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Блок 9 в алгоритме метода Гаусса рекомендуется использовать только в процессе отладки метода.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Программа реализации метода Гаусса решения систем линейных уравнений



{ Практическое занятие №4

Решение системы линейных уравнений и вычисление определителя по простой схеме Гаусса

Выполнил студент 3 курса гр. Ф.И.О.}

program Gauss;

uses crt;

const n=3; {порядок системы}

type T=real;

var a:array[1..n,1..n+1] of T;

x:array[1..n] of T;

da:array[1..n,1..n+1] of real;

dx:array[1..n] of real;

r,g,det:T;

dr,dg,ddet:real;

m,k,i,j:integer;

function ds(da,db:real):real; {погрешность суммы(разности)}

begin ds:=da+db

end;

function dpr(a,b:T; da,db:real):real; {погрешность произведения}

begin dpr:=abs(a)*db+abs(b)*da

end;

function dch(a,b:T; da,db:real):real; {погрешность частного}

begin dch:=da/abs(b)+db*abs(a)/(b*b)

end;

begin

m:=n; {ввод расширенной матрицы системы}

for k:=1 to n do for j:=1 to n+1 do

begin writeln('введите a[',k,',',j,']');

read (a[k,j]);

end;

{вывод элементов расширенной матрицы системы - для контроля правильности ввода}

writeln('расширенная матрица системы');

for k:=1 to n do

begin for j:=1 to n+1 do write (a[k,j]:12:4,' ');

writeln

end;

{ввод абсолютных погрешностей элементов расширенной матрицы - для контроля правильности ввода}

for k:=1 to n do for j:=1 to n+1 do

begin writeln('введите da[',k,',',j,']');

read (da[k,j])

end;

{вывод абсолютных погрешностей элементов расширенной матрицы - для контроля правильности ввода}

writeln; writeln('абсолютные погрешности элементов расширенной матрицы');

for k:=1 to n do

begin for j:=1 to n+1 do write (da[k,j]:12,' ');

writeln

end;

det:=1.0; {подготовка к вычислению определителя}

{начало 'прямого хода' метода Гаусса}

dr:=0; ddet:=0;

for k:=1 to n do

begin det:=det*a[k,k];

ddet:=dpr(det,a[k,k],ddet,da[k,k]);

for j:=k+1 to n+1 do

begin a[k,j]:=a[k,j]/a[k,k];

da[k,j]:=dch(a[k,j],a[k,k],da[k,j],da[k,k])

end;

for i:=k+1 to n do

for j:=k+1 to n+1 do

begin r:=a[k,j]*a[i,k];

dr:=dpr(a[k,j],a[i,k],da[k,j],da[i,k]);

a[i,j]:=a[i,j]-r;

da[i,j]:=ds(da[i,j],dr)

end;

end;

if m<0 then m:=0;

writeln; writeln('определитель системы=', det:7:m);

writeln (' предельная абс.погрешность значения опреднлителя=',ddet:10);

{начало 'обратного хода' метода Гаусса}

x[n]:=a[n,n+1]; dx[n]:=da[n,n+1];

for k:=n-1 downto 1 do

begin r:=0; dr:=0;

for j:=n downto k+1 do

begin g:=a[k,j]*x[j];

dg:=dpr(a[k,j],x[j],da[k,j],dx[j]);

r:=r+g;

dr:=ds(dr,dg);

end;

x[k]:=a[k,n+1]-r;

dx[k]:=ds(da[k,n+1],dr);

end;

writeln;writeln ('результат решения системы');

for i:=1 to n do

begin

if m<0 then m:=0;

write ('x[',i,']=',x[i]:7:m,' ')

end;

writeln;writeln ('предельная абс.погрешность результата');

for i:=1 to n do write('dx[',i,']=',dx[i]:10,' ');

repeat until keypressed

end.

Приложение 4 Практическое занятие №5

Листинг программы

{Метод прогонки}

program progonka;

var i,j:integer;

var e:real;

var a:array[1..10,1..10] of real;

var x,b, ai, bi, ci, di, Aii, Bii:array[1..10] of real;

begin

for j:=1 to 4 do begin

writeln('введите 4 значения строкиj=',j,'матрицы А');

readln(a[j,1], a[j,2], a[j,3], a[j,4]);

end;

writeln('введите 4 значения столбца правой части b ');

readln(b[1], b[2], b[3], b[4]);

for i:=1 to 4 do

begin

if i=1 then ai[i]:=0 else ai[i]:=a[i,i-1];

bi[i]:=a[i,i];

if i=4 then ci[i]:=0 else ci[i]:=a[i,i+1];

di[i]:=b[i];

end;

Aii[1]:=-ci[1]/bi[1];

Bii[1]:=di[1]/bi[1];

for i:=2 to 4 do

begin

e:=ci[i]*Aii[i-1]+bi[i];

Aii[i]:=-ci[i]/e;

Bii[i]:=(di[i]-ai[i]*Bii[i-1])/e;

end;

for i:=4 downto 1 do begin

x[i]:=Aii[i]*x[i+1]+Bii[i];

writeln('решение линейной системы методом прогонки');

writeln('x1=',x[1],' x2=',x[2],'x3=',x[3],'x4=',x[4]);

end;

end.

Листинг программы

{ Решение системы методом Гаусса-Зейделя }

program SLAU2;

label 1,2,3;

const n=4;

var a:array [1..n,1..n] of real;

b,x:array [1..n] of real;

i,j,k,m:integer;

e,s,d,d1,c:real;

begin

{ Ввод исходных данных }

for i:=1 to n do

begin

writeln ('Введите коэффициенты уравнения',i);

for j:=1 to n do read (a[i,j]);

writeln ('Введите свободный член уравнения',i);

read (b[i]);

end;

writeln ('Введите точность');readln (e);

writeln ('Введите допустимое кол-во итераций');readln (m);

for i:=2 to n do x[i]:=0;

{ Решение системы }

k:=1;

repeat

d1:=0;

for i:=1 to n do

begin

s:=0;

for j:=1 to n do

begin

if i=j then goto 1;

s:=s+a[i,j]*x[j];

1: end;

c:=(b[i]-s)/a[i,i];

d:=abs(c-x[i]);

if d1

x[i]:=c;

end;

k:=k+1;

if k>m then goto 2;

until d1<e;

{ Вывод результатов }

writeln ('решение системы');

for i:=1 to n do write (x[i]:8:4);

writeln; goto 3;

2: writeln ('Количество итераций выше допустимого');

3:end.

Приложение 5 Практическое занятие №6



Блок схема алгоритма интерполяции функции многочлена Лагранжа

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Программа реализации построения интерполяционного многочлена Лагранжа



{ Практическое занятие №6

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

выполнил студент гр. Ф.И.О. }

program Lagrang;

uses crt;

type mus=array[0..10] of real;

label 1;

var x,y:mus; n,i,j:integer;

a,m,f:real;

begin

clrscr;

writeln('Задайте степень многочлена');

readln(n);

writeln('Введите значение аргумента, для которого');

writeln('требуется найти значение функции');

readln(a);

writeln('Введите значения х,у через пробел');

for i:=0 to n do read(x[i],y[i]);

f:=0;

for i:=0 to n do

begin

j:=0;

m:=1;

1: if i=j then inc(j);

if j<=n then

begin

m:=m*(a-x[j])/(x[i]-x[j]);

inc(j); goto 1;

end;

m:=y[i]*l;

f:=f+m;

end;

writeln('При а=',a:5:2,' f(',a:5:2,')=',f:5:2);

readkey;

end.

Приложение 6 Практическое занятие №7



Блок схема метода интерполяции сплайнами







МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах









МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах











МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

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

{ Практическое занятие №7 Интерполяционный сплайн

выполнил студент гр. 3 курса

Ф.И.О. }

program intspline;

const maxn=50;

type vec=array[0..maxn] of real;

var i,n:integer;

x3,y:real;

x,f,a,b,c,d:vec;

procedure sy(il,ir: integer; a,b,d: vec; var c: vec);

var i,j,l:integer;

r: real;

begin

l:=il+1;

for i:=l to ir do begin

r:=b[i]/d[i-1];

d[i]:=d[i]-r*a[i-1];

c[i]:=c[i]-r*c[i-1]

end;

c[ir]:=c[ir]/d[ir];

for i:=1 to ir do begin

j:=ir-i+il;

c[j]:=(c[j]-a[j]*c[j+1])/d[j]

end

end;

procedure spl(n: integer; x,f: vec; var x0,y0: real);

var i,i0:integer;

r,t: real;

a,b,c,d: vec;

begin

for i:=1 to n do b[i]:=x[i]-x[i-1];

i0:=1;

for i:=2 to n do if abs(x0-x[i])<=abs(x0-x[i0]) then i0:=i;

writeln('i0= ',i0);

for i:=1 to n-1 do

begin

d[i]:=2*(b[i]+b[i+1]);

a[i]:=b[i+1];

c[i]:=6*((f[i+1]-f[i])/b[i+1]-(f[i]-f[i-1])/b[i])

end;

sy(1,n-1,a,b,d,c); c[0]:=0; c[n]:=0;

r:=(x[i0]-x0); t:=(x0-x[i0-1]);

y0:=(c[i0-1]*r*r*r+c[i0]*t*t*t)/(6*b[i0]);

y0:=y0+(f[i0-1]/b[i0]-c[i0-1]*b[i0]/6)*r;

y0:=y0+(f[i0]/b[i0]-c[i0]*b[i0]/6)*t

end;

begin

writeln('введите количество пар элементов таблицы');

readln(n);

writeln('Введите значения х,f через пробел');

for i:=0 to n-1 do read(x[i],f[i]);

writeln('введите точку х3'); readln(x3);

spl(n,x,f,x3,y);

writeln('x3=',x3,' f(x3)=',y);

end.

Приложение 7 Практическое занятие №8



МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах



Программа реализации вычисления интегралов по формуле прямоугольников



{ Практическое занятие №8

Вычисление интегралов при помощи формул Ньютона-Котеса.

Выполнил студент 3 курса гр. Ф.И.О.}

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах



Программа реализации вычисления интегралов по формуле трапеций



{ Практическое занятие №8

Вычисление интегралов при помощи формул Ньютона-Котеса.

Выполнил студент 3 курса гр. Ф.И.О.}

МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах





Программа реализации вычисления интегралов по формуле Симпсона

{ Практическое занятие №8

Вычисление интегралов при помощи формул Ньютона-Котеса.

Выполнил студент 3 курса гр. Ф.И.О.}

program simpson;

uses crt;

const n=10;

type mas=array[0..n] of real;

var y:mas; a,b,S,Integral,h,x:real; i:integer;

begin

clrscr;

writeln('Введите границы отрезка интегрирования:');

readln(a,b);

writeln('Задайте величину шага интегрирования:');

readln(h);

x:=a;

for i:=0 to n do

begin

y[i]:={введите свою функцию}

x:=x+h;

end;

S:=(y[0]-y[n])/2;

i:=1;

repeat

S:=S+(2*y[i]+y[i+1]);

i:=i+2;

until i>=n;

Integral:=2*(b-a)*S/(3*n);

writeln('Значение интеграла: I=',Integral:11:9);

readkey;

end.

Приложение 8 Практическое занятие №10



Блок схема метода Эйлера решения дифференциальных уравнений:





МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах





Блок схема метода Рунге-Кутта решения дифференциальных уравнений:



МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах

Программа реализации метода Эйлера решения дифференциальных уравнений

{ Практическое занятие №10

Метод Эйлера решения дифференциальных уравнений

Выполнил студент 3 курса гр. Ф.И.О.}

program Euler;

uses crt;

var x,y,h,b:real;

function f(x1,y1:real):real;

begin

f:={введите свою функцию}

end;

begin

clrscr;

writeln('Введите через пробел начальные значения х и у: ');

readln(x,y);

writeln('Введите величину шага интегрирования h: ');

readln(h);

writeln('Введите абсциссу правого конца отрезка b: ');

readln(b);

writeln('Таблица значений искомой функции: ');

writeln(' x ',' y ');

repeat

writeln(x:3:1,' ',y:4:2);

y:=y+h*f(x,y);

x:=x+h;

until x>=b+h/2;

repeat until keypressed

end.

Программа реализации метода Рунге-Кутта решения дифференциальных уравнений

{ Практическое занятие №10

Метод Рунге-Кутта решения дифференциальных уравнений

Выполнил студент 3 курса гр. Ф.И.О.}

program runge_kutta4;

uses crt;

var x,y,h,b,z:real; i,n:integer; r1,r2,r3,r4:real;

function f(x1,y1:real):real;

begin

f:={введите свою функцию}

end;

begin

clrscr;

writeln('Задайте начальные значения: ');

read(x,y);

writeln('Укажите шаг интегрирования: ');

read(h);

writeln('и правую границу отрезка интегрирования: ');

read(b);

repeat

writeln(x:3:2,' ',y:4:4);

r1:=h*f(x,y);

r2:=h*f(x+h/2,y+r1/2);

r3:=h*f(x+h/2,y+r2/2);

r4:=h*f(x+h,y+r3);

y:=y+(r1+2*r2+2*r3+r4)/6;

x:=x+h;

until x>=b+h/2;

end.


Литература


Основные источники


  1. Партыка Т.Л., Попов И.И. Математические методы. - М.: ФОРУМ : ИНФРА-М, 2012.

  2. Агальцов В.П., Волдайская И.В.. Математические методы в программировании: Учебник.- М.: ФОРУМ: ИНФРА-М, 2008.

Дополнительные источники


  1. Фомин Г.П. Математические методы и модели в коммерческой деятельности: Учебник. - М.: Финансы и статистика, 2008.

  2. Попов А.М. Экономико-математические методы и модели :учебник.-М.: Юрайт, 2012

Интернет-ресурсы


  1. Единое информационно-образовательное пространство колледжа NetSchool. Форма доступа: sgtek.ru

  2. Информационно-справочная система «В помощь студентам». Форма доступа: window.edu.ru

  3. Информационно-справочная система. Форма доступа: dit.isuct.ru.

  4. Информационно-справочная система. Форма доступа: resolventa.ru



110


© 2010-2022