Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Математика / Другие методич. материалы / МЕТОДИЧЕСКИЕ УКАЗАНИЯ для практических занятий по дисциплине «Численные методы» для студентов 3 курса (специальность Программирование в компьютерных системах
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 24 мая.

Подать заявку на курс
  • Математика

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

библиотека
материалов

Дhello_html_6ff7e003.pngЕПАРТАМЕНТ ОБРАЗОВАНИЯ, НАУКИ И МОЛОДЕЖНОЙ ПОЛИТИКИ ВОРОНЕЖСКОЙ ОБЛАСТИ

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

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






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





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

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

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

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

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





hello_html_4039a2b3.png





Семилуки , 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) найдём границы, в которых заключено точное значение числа Х:

х - х Х х + х.

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

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


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

hello_html_2fb7690d.gif

Если первая значащая цифра в относительной погрешности hello_html_377b886e.gif меньше 5, то граница относительной погрешности определяется из неравенства hello_html_m39c1e128.gif, где n- количество верных цифр.


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


х#у

(х#у)

Δ(х#у)

х+у

hello_html_2e85d6ba.gifx+hello_html_2e85d6ba.gify

hello_html_m1f47a710.gif

х-у

hello_html_2e85d6ba.gifx+hello_html_2e85d6ba.gify

hello_html_3226a4f0.gif

ху

hello_html_5b8dde7e.gif

hello_html_me130cc0.gif

х/у

hello_html_mdef0e8a.gif

hello_html_me130cc0.gif


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


f(x)

hello_html_m7a4b7ddf.gif

hello_html_11946820.gif

hello_html_m247fcf1a.gif

hello_html_mb6de5bb.gif

hello_html_236f25c.gif

hello_html_m311eb8c3.gif

hello_html_m2f2fc632.gif

hello_html_54f90104.gif

sin x

hello_html_m223ebd8.gif

hello_html_m12e8844c.gif

cos x

hello_html_m683e1a28.gif

hello_html_m62d5348a.gif

tg x

hello_html_381b6d02.gif

hello_html_m5b5302aa.gif

ln x

hello_html_65716c7a.gif

hello_html_m7e76145a.gif

lg x

hello_html_m493eca60.gif

hello_html_m2ba257e8.gif

hello_html_3875955a.gif

hello_html_m2d73f4e5.gif

hello_html_1eefa13a.gif

arcsin x

hello_html_44dc2c05.gif

hello_html_3a9c6774.gif

arccos x

hello_html_m63d31f07.gif

hello_html_23bc0810.gif

arctg x

hello_html_m6581bdea.gif

hello_html_2aeb6c31.gif

hello_html_2f00bb5a.gif

hello_html_m6bc69ef4.gif

hello_html_1489e1af.gif


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


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


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


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

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

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

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

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

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

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


Пример: Вычислить значение функции hello_html_m226ddd1.gif, а = 2,156, b = 0,927.

а

2,156

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

b

0,927

hello_html_2d04bf83.gif

8,637

hello_html_m75451ea.gif= 8,63652,

оценим производную (hello_html_2d04bf83.gif)’ = hello_html_27430b2e.gif, значит (используя правило 3), надо сохранить на один знак меньше, чем в значении аргумента + 1 запасная цифра.

hello_html_m73757a7c.gif

0,9628

hello_html_m73757a7c.gif= 0,9628083,

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

hello_html_2d04bf83.gif+hello_html_m73757a7c.gif

9,600

hello_html_2d04bf83.gif+hello_html_m73757a7c.gif=8,637+0,9628=9,5998,

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

hello_html_m6c8b2791.gif

0,8593

hello_html_7f20ad64.gif,

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

hello_html_70ce576e.gif

3,0153

hello_html_1f054277.gif,

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

hello_html_m59d9049.gif

1,1037

hello_html_m69d30791.gif,

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

A

8,698

hello_html_m15fd1cdc.gif,

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

А

8,70

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

По правилу 4, запасная цифра в окончательном результате округляется hello_html_m77ce7b93.gif


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


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

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


Пример: Вычислить значение функции hello_html_m226ddd1.gif, а = 2,156, b = 0,927.

а

b

hello_html_2d04bf83.gif

hello_html_m73757a7c.gif

hello_html_2d04bf83.gif+hello_html_m73757a7c.gif

hello_html_m6c8b2791.gif

a+hello_html_m6c8b2791.gif

ln(a+hello_html_m6c8b2791.gif)

A

2,156

0,927

8,637

0,9628

9,603

0,860

3,016

1,104

8,70

hello_html_2e85d6ba.gifа

hello_html_2e85d6ba.gifb

hello_html_2e85d6ba.gif(hello_html_2d04bf83.gif)

hello_html_2e85d6ba.gif(hello_html_m73757a7c.gif)

hello_html_2e85d6ba.gif(hello_html_2d04bf83.gif+hello_html_m73757a7c.gif)

hello_html_2e85d6ba.gif(hello_html_m6c8b2791.gif)

hello_html_2e85d6ba.gif(a+hello_html_m6c8b2791.gif)

hello_html_2e85d6ba.gifln(a+hello_html_m6c8b2791.gif)

hello_html_2e85d6ba.gifA

0,0005

0,0005

0,0049

0,00027

0,0054

0,0016

0,0021

0,00076

0,016


Используя калькулятор, имеем hello_html_m3187402.gif.

При вычислении предельных абсолютных погрешностей используем таблицу 1.2. hello_html_679c1d00.gif.

Судя по ее величине, в полученном значении экспоненты в строгом смысле верны два знака после запятой. Округляем это значение с одной запасной цифрой:hello_html_m41aad927.gif и вносим его в таблицу.

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

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

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

Округляя окончательный результат до последней верной в строгом смысле цифры, а так же округляя погрешность до соответствующих разрядов результата, окончательно получаем: А = 8,7 hello_html_m78531b32.gif0,1.


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


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


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

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

hello_html_m313b8401.gif; hello_html_m3b48516c.gif.

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


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

hello_html_221ef654.gif.

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

hello_html_m57f20cb5.gif.

Рассмотрим указанный принцип на примере основных арифметических действий. Пусть hello_html_71825653.gif. Тогда очевидно, что

hello_html_4cb65106.gif.

Точно так же для функции hello_html_m7b9fe11f.gif(она по x возрастает, а по y убывает) имеем

hello_html_456dd35.gif.

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

hello_html_m2dfab631.gif

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

Пример: Вычислить значение функции hello_html_m226ddd1.gif, а = 2,156, b = 0,927.

Нижняя и верхняя границы значений a и b определены из условия, что в исходных данных а = 2,156 и b = 0, 927 все цифры верны (hello_html_6120b64c.gif,

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


а

b

hello_html_2d04bf83.gif

hello_html_m73757a7c.gif

hello_html_2d04bf83.gif+hello_html_m73757a7c.gif

hello_html_m6c8b2791.gif

a+hello_html_m6c8b2791.gif

ln(a+hello_html_m6c8b2791.gif)

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.


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

hello_html_m1ebf3b68.gif

что дает А = 8,697hello_html_m78531b32.gif0,008, или при записи верными цифрами, А=8,7hello_html_m78531b32.gif0,01.


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


Задание 1.


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

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

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

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

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


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


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

Z

a

b

c

1

hello_html_m4723df4d.gif

3,4

6,22

0,149

2

hello_html_172e3c0f.gif

4,05

6,723

0,03254

3

hello_html_m169d457d.gif

0,7219

135,347

0,013

4

hello_html_2d2417e5.gif

3,672

4,63

0,0278

5

hello_html_m555c4e2c.gif

1,24734

0,346

0,051

6

hello_html_5789d737.gif

11,7

0,0937

5,081

7

hello_html_54f71a80.gif

1,75

1,21

0,041

8

hello_html_m22c5eb25.gif

18,0354

3,7251

0,071

9

hello_html_m2c20f584.gif

0,113

0,1056

89,4

10

hello_html_6285e3c9.gif

0,0399

4,83

0,072

11

hello_html_m71a4264d.gif

1,574

1,40

1,1236

12

hello_html_1a8c5407.gif

12,72

0,34

0,0290

13

hello_html_2b8abada.gif

3,49

0,845

0,0037

14

hello_html_e3c5a21.gif

0,0976

2,371

1,15874

15

hello_html_m44d0aec2.gif

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] единственный.


Пример: Для графического отделения корней уравнения hello_html_m696a7671.gifпреобразуем его к равносильному уравнению hello_html_7aac6f08.gifи отдельно построим графики функций hello_html_m2e559091.gif.

hello_html_817420c.png

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

Вычислим для проверки значения функции hello_html_67cbabc6.gifна концах отрезка [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).

hello_html_m51a1f56e.pnghello_html_m3cf98ab8.png

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


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

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


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


Пример: Найти корень уравнения hello_html_m696a7671.gifна отрезке [1,3;1,5] с точностью до 10-3.

Решение: Уравнение hello_html_m696a7671.gif имеет единственный корень на отрезке [1,3;1,5]

Уточним корень уравнения: Найдем середину отрезка [1,3;1,5]: hello_html_m3ff04e27.gif.

Определим, на каком из полученных отрезков [1,3;1,4] и [1,4;1,5] функция hello_html_67cbabc6.gifменяет свой знак.

1) [1,3;1,4]: hello_html_424f3f8a.gif 2) [1,4;1,5]: hello_html_353b3c22.gif

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

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

hello_html_m1444f520.gif, точность не достигнута.

Разделим отрезок [1,3;1,4] пополам точкой hello_html_6b023958.gif.

Определим, на каком из полученных отрезков [1,3;1,35] и [1,35;1,4] функция hello_html_67cbabc6.gifменяет свой знак.

1) [1,3;1,35]: hello_html_1495a464.gif2) [1,35;1,4]: hello_html_cc5222c.gif

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

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

hello_html_d6a3427.gif, точность не достигнута.

Снова разделим отрезок [1,35;1,4] пополам точкой hello_html_4d03b741.gif.

Определим, на каком из полученных отрезков [1,35;1,375] и [1,375;1,4] функция hello_html_67cbabc6.gifменяет свой знак.

1) [1,35;1,375]: hello_html_44d1d0dd.gif

2) [1,375;1,4]: hello_html_m7ee80639.gif

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

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

hello_html_m387bdcb8.gif, точность не достигнута.

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

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


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


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


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

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

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


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

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

Уравнение

Пояснения

1

hello_html_167aaddc.gif

-

2

hello_html_5ea79bbe.gif

-

3

hello_html_32bc7948.gif

При х<10

4

hello_html_1b3cef38.gif

При х>-10

5

hello_html_m2f51af05.gif

При х<5

6

hello_html_m473a238d.gif

-

7

hello_html_7d5aaf1f.gif

-

8

hello_html_20c6b07c.gif

-

9

hello_html_5c3bb721.gif

-

10

hello_html_784ae36c.gif

-

11

hello_html_720c92e4.gif

-

12

hello_html_m3cbb9928.gif

-

13

hello_html_m3fc6d7ae.gif

-

14

hello_html_m7310cc3d.gif

-

15

hello_html_md32ce18.gif

-


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


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

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

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

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



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

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


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

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

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

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



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


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


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

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


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

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

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

hello_html_7677b4c0.gif(2.3)

гдеhello_html_m32a908b6.gif - любая функция, определенная на отрезке [a;b] и не обращающаяся на нем в нуль. Осуществляя различными способами выбор hello_html_m32a908b6.gif, можно получить, в частности, и указанные методы.


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

Пусть в (2.3) hello_html_m503acb7.gif. Таким образом, итерационная последовательность строится с помощью рекуррентного соотношения

hello_html_2660ecce.gif(2.4)

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

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

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


В таком ситуации за х0 берется тот конец отрезка [a;b], на котором функция f(x) и ее вторая производная имеют одинаковые знаки, т.е. выполняется условие hello_html_6c7b5726.gif.

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

hello_html_20711be0.gif. (2.5)

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

hello_html_m68dace9d.png

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


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


Пример: Уточнить корень уравнения hello_html_m696a7671.gif на отрезке [1,3;1,5] методом касательных с точностью до 1.hello_html_ma75c913.gif.

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

hello_html_31f0332d.gif,

т.к . производная hello_html_m4c44fc44.gif.

Для определения точки hello_html_3fea5f90.gif найдем знаки hello_html_67cbabc6.gifи hello_html_mc2f3a87.gifна концах отрезка [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.

Таким образом, hello_html_m41769e8e.gif.

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

hello_html_59c2c685.gif

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

hello_html_7fbd0d19.gifhello_html_2dc4201.gif, значит hello_html_7503e15b.gifhello_html_m53d4ecad.gif

hello_html_m68ea97b.gif- требуемая точность не достигнута.

hello_html_729aa2b.gif

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

hello_html_m56f37ac1.gif- требуемая точность достигнута.

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


  1. Метод хорд


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

Если положить в (2.3) hello_html_1a6500da.gif, а в качестве с взять тот конец промежутка [a;b], на котором hello_html_407cad6b.gif, то приходим к итерационному методу:

hello_html_m49b268c3.gif, (2.6)

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

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

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

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

hello_html_516c8ec.png

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


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


Пример: Уточнить корень уравнения hello_html_m696a7671.gif на отрезке [1,3;1,5] методом хорд с точностью до 1.hello_html_ma75c913.gif.

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

hello_html_m7aea37aa.gif

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

hello_html_3d260cd1.gif- требуемая точность не достигнута.

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

hello_html_5a583f4f.gif

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

hello_html_77819f95.gif- требуемая точность достигнута

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


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


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


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

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

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


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

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

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


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

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

Уравнение

Пояснения

1

hello_html_167aaddc.gif

-

2

hello_html_5ea79bbe.gif

-

3

hello_html_32bc7948.gif

При х<10

4

hello_html_1b3cef38.gif

При х>-10

5

hello_html_m2f51af05.gif

При х<5

6

hello_html_m473a238d.gif

-

7

hello_html_7d5aaf1f.gif

-

8

hello_html_20c6b07c.gif

-

9

hello_html_5c3bb721.gif

-

10

hello_html_784ae36c.gif

-

11

hello_html_720c92e4.gif

-

12

hello_html_m3cbb9928.gif

-

13

hello_html_m3fc6d7ae.gif

-

14

hello_html_m7310cc3d.gif

-

15

hello_html_md32ce18.gif

-


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


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

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

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

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

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



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

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


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


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

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

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

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



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


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


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

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

Итак, перед нами система n линейных алгебраических уравнений с n неизвестными: hello_html_m46cce286.gif(2.7)

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

где hello_html_m78a3790b.gif

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

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

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

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

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

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

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


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


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

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

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

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

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

Считая, что hello_html_4206d4c5.gif(ведущий элемент), разделим на hello_html_3dd42a56.gif коэффициенты первого уравнения: hello_html_m681f4833.gif(2.8)

Используя уравнение (2.8), легко исключить неизвестное xhello_html_m34745add.gif из остальных уравнений системы (достаточно из каждого уравнения вычесть уравнение (1), умноженное на соответствующий коэффициент при xhello_html_m34745add.gif).

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

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

hello_html_33bcaf6.gif(2.9)

Из системы (2.9) последовательно находим значения неизвестных hello_html_m6671fae0.gif

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


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

hello_html_6b417927.gif

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

hello_html_272d6686.gif

Так как, hello_html_m3c491364.gif, разделим элементы первой строки на 2,34. Затем из элементов второй строки вычтем элементы первой, умноженные на 8,04, а из элементов третьей - вычтем элементы первой, умноженные на 3,92.

hello_html_e7d9e7d.gif.

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

hello_html_5da14efc.gif.

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

hello_html_7a92156c.gif.

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

hello_html_m2e287e18.gif,

hello_html_m77e15a59.gif


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

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

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

hello_html_38f34e3f.gif

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


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


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

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

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

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

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

1) hello_html_m4c1c4571.gif;

2)hello_html_m2eec82f.gif;

………………

n)hello_html_5ed04d2.gif.

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


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

Если необходимо вычислить определитель некоторой квадратной матрицы, надо решить систему уравнений с этой матрицей и произвольной правой частью и воспользоваться формулой:hello_html_m1ecf13e1.gif.


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


Схема единственного деления может использоваться также и для вычисления элементов матрицы hello_html_m71cfc6e2.gif, обратной для невырожденной матрицы A. По определению, hello_html_m1fee0115.gif,где E – единичная матрица.

Представим искомую матрицу hello_html_m71cfc6e2.gifи единичную матрицу Е в виде совокупности векторов-столбцов. В такой записи соотношение hello_html_m1fee0115.gif предстанет в виде совокупности из n систем линейных уравнений вида hello_html_m2451a138.gif.

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

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


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


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

hello_html_27f5008c.gif

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

Решение:

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

hello_html_1a31aff8.gif

Так как, hello_html_m3c491364.gif, разделим элементы первой строки на 2,34. Затем из элементов второй строки вычтем элементы первой, умноженные на 8,04, а из элементов третьей - вычтем элементы первой, умноженные на 3,92.

hello_html_m529b490e.gif.

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

hello_html_m496c87d6.gif.

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

hello_html_m596878af.gif.

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

hello_html_6fae07e3.gif.

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

hello_html_m3f4fa6fd.gif.

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

hello_html_m473f434c.gif.

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

hello_html_m1d8b2d18.gif.

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

hello_html_m32ec2c85.gif

Поскольку вычисления матрицы hello_html_m71cfc6e2.gifвелись с округлением, то наличие невязок, отражённых в матрице hello_html_2341cef3.gif, является естественным.


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


Задание 1


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

hello_html_3ea916a0.gif

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

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

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

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

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

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


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


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

hello_html_m2cdb1786.png


  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, следовательно, задача решена верно.

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

hello_html_m4caf4ae1.png

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



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

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


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

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

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



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


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


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

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

hello_html_m46cce286.gif

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

hello_html_700d7cf4.gif(2.10)

В сокращенной форме: hello_html_m7f887365.gif.

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

Правая часть системы определяет отображение hello_html_5756eb0.gif(2.11),

переводящее точку hello_html_m51d1ad2d.gif в точку hello_html_m698d2bf1.gif. Используя отображения (2.11) и выбрав начальную точкуhello_html_30587015.gif можно построить итерационную последовательность точек.

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

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

Для отображения (2.11) необходимым и достаточным условием сжимаемости является следующее: hello_html_m6ccc24dc.gif, (2.12), т.е. максимальная из сумм модулей коэффициентов при неизвестных в правой части системы (2.10), взятых по столбцам, должен быть меньше 1.


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


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

Для обеспечения сходимости итерационной последовательности необходимо, чтобы коэффициенты hello_html_m7148679.gif при неизвестных в правой части системы были существенно меньше 1.

Этого можно достичь, если исходную систему (2.7) с помощью равносильных преобразований привести к системе, у которой абсолютная величина коэффициентов, стоящих на главной диагонали, больше абсолютных величин каждого из других коэффициентов, стоящих при неизвестных в соответствующих уровнях (такую систему называют системой с преобладающими диагональными коэффициентами). Если теперь разделить все уравнения на соответствующие диагональные коэффициенты и выразить из каждого уравнения неизвестное с коэффициентом, равным 1, будет получена система (2.10), у которой все hello_html_5fd87af3.gif.

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


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


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

hello_html_1d425b9.gif

методом простой итерации с точностью hello_html_m1276b02b.gif.

Решение:

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

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

hello_html_m4a710f47.gif

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

hello_html_4532e557.gif

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


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


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

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

Обозначим элементы имеющегося приближения через hello_html_120f6006.gif, а элементы очередного (вычисляемого) приближения через hello_html_6097af49.gif .


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

hello_html_661e4526.gif

Основная идея метода Зейделя состоит в том, что на каждом шаге итерационного процесса при вычислении значения hello_html_3e64438f.gif учитываются уже полученные значенияhello_html_m508180b7.gif. Выпишем соответствующие вычислительные формулы:

hello_html_543abda.gif


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


Если для матрицы коэффициентов системы (2.10) выполняется условие (2.12), то итерационный процесс метода Зейделя сходится к решению системы при любом выборе начального приближения hello_html_35d34664.gif.

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




Пример:

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

Правая часть

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. Решим систему линейных уравнений методом прогонки.


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

hello_html_39d14dc3.png


hello_html_6330418a.gif

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

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


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

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

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

hello_html_93f4830.gif,

hello_html_1bc01da4.gif,

hello_html_3113ed68.gif


  1. hello_html_34a17c53.gif

hello_html_29333554.gif

hello_html_m6c98b926.gif


  1. hello_html_2239877e.gif,

hello_html_m120f0aff.gif,

hello_html_19bf76f8.gif


  1. hello_html_m2f71400c.gif,

hello_html_35a876fd.gif,

hello_html_m45dfd7b1.gif


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

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

hello_html_m353e775d.gif

hello_html_m5662122b.gif

hello_html_m7b48be93.gif

hello_html_m7ea90bf2.gif

Ответ: hello_html_m30d5b4b0.gif


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

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



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

hello_html_6330418a.gif

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

hello_html_937c7a7.gif

hello_html_7ccfc5f4.gif

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

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


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

hello_html_38e44f3.gif


hello_html_537e7b18.gif


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

hello_html_m23c60918.gif

hello_html_m51d2d97d.gif

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

hello_html_7cde5668.gif

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


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

hello_html_m3b4ac6fa.gif

hello_html_61bf0086.gif

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

hello_html_3a4e1357.gif

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


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

hello_html_m29fb04b5.gif

hello_html_m78105912.gif

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

hello_html_431906df.gif


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

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

hello_html_225f6d5b.gif


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

Метод

Х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. Постановка задачи аппроксимации функций


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


Поводом для аппроксимации функции может послужить, в частности, табличный способ её задания. Предположим, что результате некоторого эксперимента для конечного набора значений hello_html_7a9f0571.gif величины x из отрезка [a;b]: hello_html_m575a9e9d.gif

получен набор значений hello_html_3e64438f.gif величины у (таблица 3.1).

таблица 3.1

x

xhello_html_7cec0eee.gif

xhello_html_m34745add.gif

xhello_html_589afdc8.gif

hello_html_m63b1c615.gif

F(x)

yhello_html_7cec0eee.gif

yhello_html_m34745add.gif

yhello_html_589afdc8.gif

hello_html_7600b3fe.gif


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

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

Точки hello_html_38b93a57.gifназывают узлами аппроксимации.

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

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

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

Для функций, заданных таблично, достаточно распространенным является критерий Чебышева, который определяет расстояниеhello_html_644d471.gif между аппроксимируемой и аппроксимирующей функциями как максимум величины отклонения между этими функциями в узлах: hello_html_91e6d02.gif(3.1)

Если hello_html_644d471.gif=0, т.е. hello_html_m1df0744a.gif(в узлах значения совпадают), то соответствующий способ аппроксимации называют интерполяцией, а процедуру вычисления значений F(x) с помощью G(x) в точках, не являющихся узлами сетки, - интерполированием.


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

hello_html_m7f988226.gif.

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


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


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


x

xhello_html_7cec0eee.gif

xhello_html_m34745add.gif

xhello_html_589afdc8.gif

hello_html_m63b1c615.gif

F(x)

yhello_html_7cec0eee.gif

yhello_html_m34745add.gif

yhello_html_589afdc8.gif

hello_html_7600b3fe.gif


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

hello_html_301a4ab4.gif(3.2)

который в узлах hello_html_7a9f0571.gif принимает значения hello_html_3e64438f.gif

hello_html_6f4a1547.gif(3.3)

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

hello_html_6e41df34.gif(3.4)

Решая эту с.л.у. относительно hello_html_500deba.gif получим аналитическое выражение многочлена (3.2).

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

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


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


Пусть функция F(x) задана таблицей (3.1).

Построим многочлен Ln(x), степень которого не выше, чем n, и для которого выполнены условия интерполяции

hello_html_m4f9c105a.gif(3.5)

Будем искать Ln(x) в виде

hello_html_m66d63307.gif(3.6),

где hello_html_3b8f3270.gif- многочлен степени n, причем

hello_html_m194939eb.gif(3.7).

Очевидно, что требования (3.7) с учётом (3.6) вполне обеспечивает выполнение условий (3.5). Многочлен hello_html_3b8f3270.gifсоставим следующим образом:

hello_html_762139f1.gif(3.8)

hello_html_m22f18283.gif- коэффициент, значение которого найдем из первой части условия (3.7):

hello_html_m397d727d.gif

Подставим hello_html_m22f18283.gif в (3.8) и далее с учётом (3.6) получим:

hello_html_m7b7d599e.gif(3.9)

Это и есть интерполяционный многочлен Лагранжа.

По таблице исходной функции F формула (3.9) позволяет довольно просто составить «внешний вид» многочлена.



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

х

1

3

4

F(x)

12

4

6

Решение:

Из таблицы следует, что n=2 (на 1 меньше, чем узлов).

hello_html_67a9ffd9.gif

По формуле (3.9) получаем:

hello_html_m6a9e2870.gif

Таким образом, интерполяционный многочлен для заданной функции имеет вид hello_html_m7062764c.gif

Построим графикhello_html_291f8f4c.gif и точки в одной координатной плоскости.

hello_html_584cdb90.png


Задания практического занятия №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

xhello_html_7cec0eee.gif

xhello_html_m34745add.gif

xhello_html_589afdc8.gif

hello_html_m63b1c615.gif

y

yhello_html_7cec0eee.gif

yhello_html_m34745add.gif

yhello_html_589afdc8.gif

hello_html_7600b3fe.gif

если:

  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) можно представить в виде

hello_html_m5805bcb3.gif (3.17)

Где каждый из hello_html_m3a705f1e.gif - многочлен третьей степени:

hello_html_m3fdc3152.gif . (3.18)

Коэффициенты hello_html_m108ccc50.gif найдем из условия: hello_html_23f24ad2.gif, т.е.

hello_html_m2f85de22.gif (3.19)

Условие непрерывности S(x) в каждом узле приводит к равенствам:

hello_html_m4365c780.gif

В развернутом виде с учетом формулы (3.18) эти равенства примут вид:

hello_html_2601552a.gif (3.20)

Введем обозначения: hello_html_5bbaab4d.gif

Понижая в равенстве (3.20) индекс на единицу (меняем i на i-1) и, учитывая (3.19), получим:

hello_html_41fed689.gif(3.21)

Условие непрерывности первой производной кубического сплайна сводится к требованию hello_html_3e399fb.gif

Тогда дифференцируя формулу (3.18) и используя, введите обозначения, получим:

hello_html_m2134d629.gifhello_html_77d38251.gif) (3.22)

Из условия непрерывности второй производной: hello_html_m7eba8128.gifполучим:

hello_html_4f5c643a.gifhello_html_169b09f4.gif) (3.23)

Составим систему из равенств (3.21)-(3.23) и, решив её, найдем коэффициенты hello_html_5c2a9a45.gif.

Однако, для однозначной ее разрешимости добавим условия непрерывности на концах отрезка: hello_html_4d93546f.gif, hello_html_7f4b294a.gif т.е.

hello_html_m735385b1.gif(3.24)

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

hello_html_7ef849c7.gif

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

hello_html_m7a740c50.gif(3.25)

(это уравнение содержит лишь неизвестные hello_html_m3681a921.gif).

hello_html_49bd3af1.gif(3.26)

(это уравнение содержит лишь неизвестные hello_html_583e603d.gif).

hello_html_42e9bfd7.gif(3.27)

(это уравнение содержит лишь неизвестные hello_html_m4a6df7f9.gif).

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

hello_html_2b350cab.gif,

где hello_html_m79e7bb42.gif - промежуток интерполяции.


  1. Пример построения кубического сплайна для функции y=f(x), заданной таблично


Пример: Построить кубический сплайн для функции y=f(x), заданной таблицей:

hello_html_m4562c0be.gif

-1

0

1

2

hello_html_24b6374a.gif

1/2

1

2

4

с дополнительным условием: hello_html_31c2364a.gif. Найти с помощью S(x) значения функции при x=0,3. (Заметим, что в основу таблицы положена функция у =2x).

Решение: hello_html_67244321.gif (т.к. не используется в функциях) и hello_html_4b9953d4.gif (т.к. из условия (3.24):hello_html_m16df9eb1.gif).

Шаг таблицы hello_html_43bcbb27.gif.

из (3.25) получаем:

hello_html_7638eb52.gif

hello_html_45342d5c.gif

hello_html_79a9e84c.gif

hello_html_49332f07.gif

Из (3.26) имеем:

hello_html_70dca1df.gif,

hello_html_m6263b821.gif,

hello_html_m5c6d2326.gif.

Из (3.27) имеем:

hello_html_5d804fcb.gif,

hello_html_5f512f01.gif,

hello_html_2a970d51.gif.

из формулы (3.28) получаем:

hello_html_7c476695.gif,

hello_html_m4a907da2.gifhello_html_m406de2a3.gif.

hello_html_624d7818.gif,hello_html_m1dde13aa.gif

hello_html_mf1b4e23.gif, hello_html_258ac104.gif

Следовательно, сплайн S(x) построен:

hello_html_2c1d800f.gif

Найдем его значение при x=0,3:

Заметим, что 0,3hello_html_m289d78ff.gif[0;1], поэтому используем многочлен hello_html_47e11fdd.gif:

hello_html_m58a133e1.gif.

Отметим для сопоставления с той же точностью значение функции, положенной в основу данного примера:hello_html_m43f92e8b.gif.


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


Задания практического занятия №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. Подстановка задачи численного интеграла

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

hello_html_2b15c4d5.gif,

где f(x) - функция непрерывная на отрезке [a,b] используется формула Ньютона - Лейбница:

hello_html_m5fb430e9.gif(4.1)

Однако бывают случаи, когда первообразную F(x) нельзя найти, или не всегда удается довести вычисления до числового значения. Иногда подынтегральная функция может быть задана таблично или графиком, поэтому формула (4.1) не исчерпывает практических приемов вычисления интегралов.

На практике часто применяют различные методы приближенного (численного) интегрирования.

Определение: Формулы, используемые для приближенного вычисления интегралов, называют квадратурными формулами.


Простой прием построения квадратурных формул состоит в том, что подынтегральная функция f(x) заменяется на отрезке [a;b] интерполяционным многочленом Лагранжа Ln(x), и тогда:

hello_html_me12710e.gif. (4.2)

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


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

Для вычисления определенного интеграла hello_html_1279ce71.gif отрезок [a;b] разбивают на n криволинейную трапецию, заменяют прямоугольником с основанием hello_html_2fcde43a.gif, и высотой hello_html_m91b1ac0.gif соответственно.

hello_html_12ed56b7.png

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

hello_html_mfcef352.gif. (4.5)

Формула (4.5) называется формулой прямоугольников с недостатком.

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

hello_html_m5b7c689d.png

hello_html_m5d94ddcf.gif(4.6)

Формула (4.6) называется формулой прямоугольников с избытком.

где значение

hello_html_3885d2be.gifhello_html_ca47595.gif. (4.7)

Пример: Вычислить по формуле прямоугольников интеграл

hello_html_3d8f8039.gif(n=5).

Решение:

Имеем a=0, hello_html_15cc5145.gif , hello_html_6d060c76.gif.

Тогда hello_html_6984940b.gif

Вычислим значение функции по формуле (4.7):

hello_html_1308ac48.gif

Применяя формулу прямоугольника с недостатком (4.2) получим

hello_html_7ab9fd9.gif

Вычислим данный интеграл по формуле Ньютона - Лейбница и сравним результаты:

hello_html_m11eece36.gif

Относительная погрешность вычисления:

hello_html_103b0429.gif.


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


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

hello_html_m7545beb6.png


hello_html_11659d5e.gif(4.8)

Для повышения точности результата разобьём фигуру на n частей, а затем суммируем площади получившихся трапеций:

hello_html_m4f8f8aea.gif(4.9)

где hello_html_m15380b3a.gif.

Формула (4.9) называется формулой трапеций.


Пример: По формуле трапеции вычислить интеграл

hello_html_3fb3358c.gif(n=5).


Решение: Имеем a=0, b=5, hello_html_63a87465.gif, hello_html_m7fc3f351.gif.

Вычислим промежуточные значения функции в узлах:

hello_html_5f2c7fb.gif

Тогда по формуле трапеций (4.9) имеем:

hello_html_51ae63cd.gif.



  1. Метод парабол


Замена подынтегральной функции f(x) параболой, проходящей через точки Mi(xi; yi), (i=0,1,2) позволяет получать более точное значение определенного интеграла.

hello_html_7b225d72.png

Если считать, что n - четное (n=2m), то получим:

hello_html_227f94d6.gif(4.10)

где hello_html_m11fac74c.gif.

Формула (4.10) называется формулой парабол или формулой Симпсона.

Для оценки погрешности формулы Симпсона применяется формула

hello_html_mb952e2a.gif, (4.11)

Как следует из оценки, формула Симпсона, оказывается точной для многочленов до 3-ей степени включительно. Так как для этих случаев производная 4-го порядка равна 0.

Формула Симпсона обладает повышенной точностью по сравнению с формулой трапеций, это обозначает, что для достижения той же точности, что и в формуле трапеций, в ней можно брать меньшее число n - отрезков разбиения. Последнее обстоятельство весьма важно для вычислений. Поскольку основное время затрачивается на нахождение значений функции в узлах. Укажем простой практический прием, позволяющий прогнозировать требуемое число отрезков разбиения по заданной точностиhello_html_363d9209.gif.

hello_html_m74a505c9.gif, (4.12)


Пример: Вычислить интеграл по формуле парабол

hello_html_m7598315e.gif, (n=10).

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


xi

hello_html_24b6374a.gif

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:

hello_html_d9a4f83.gif

В данном случае легко вычислить «точное» значение этого интеграла, пользуясь формулой Ньютона - Лейбница

hello_html_7460b8fc.gif.

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



Задания практического занятия №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

hello_html_183f711.gif

1

2

2

hello_html_m14c0fee.gif

1

2

3

hello_html_23376be2.gif

2

3

4

hello_html_cb18c99.gif

1

2

5

hello_html_62605aa2.gif

1.2

2.2

6

hello_html_2fce6439.gif

0.5

1.5

7

hello_html_m287f02eb.gif

2

3

8

hello_html_m306dbb70.gif

3

4

9

hello_html_m496d07e1.gif

1

2

10

hello_html_7674f817.gif

-1

0

11

hello_html_5d8d4970.gif

-0.5

0.5

12

hello_html_61482604.gif

0,1

1,1

13

hello_html_m6c03ec55.gif

0.2

1.2

14

hello_html_m1f117343.gif

1.5

2.5

15

hello_html_1c81b639.gif

0.1

1.1


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

  1. Почему формула Ньютона-Котеса может оказаться непригодной для реального вычисления определенного интеграла?

  2. Как связаны задачи численного интегрирования и интерполирования?

  3. Чем объясняется название формулы прямоугольников?

  4. Чем объясняется название формулы трапеций?

  5. В чем выражается преимущества формулы Симпсона перед формулой трапеций?

  6. Каким образом при использовании формулы парабол можно рассчитать требуемое число отрезков разбиения для достижения заданной точности интегрирования hello_html_363d9209.gif?



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

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


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

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

  • получить умения приближенно вычислять интегралы при помощи формул Ньютона-Котеса (формулаГаусса);



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


Квадратные формулы Гаусса


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

При получении квадратных формул Гаусса в исходном интеграле выполняется замена переменной, переводящая интеграл по отрезку [a;b] в интеграл по отрезку [-1;1].

hello_html_7cfc5e72.gifили hello_html_25f217a0.gif(4.13)

Тогда

hello_html_m1959248b.gif(4.14)

Последний интеграл обозначим hello_html_m7b70b772.gifи можно далее, развивать метод Гаусса применительно к нему.

Для разъяснения существа метода Гаусса будем использовать простейшую (линейную) интерполяцию подынтегральной функции:

Если в качестве узлов интерполяции взять концы отрезка [-1;1], то различие в площадях криволинейной трапеции, ограниченной сверху кривой hello_html_343f4e17.gifи «обычной» трапеции, ограниченной сверху прямой, проведённой через концы указанной кривой, фиксировано видом функции hello_html_343f4e17.gif.

hello_html_18542662.png

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

Более того, можно сделать эти площади равными hello_html_m78ad87a9.gif, т.е. аппроксимировать интеграл точно, но для этого необходимо определить точки hello_html_m38ce791.gif.

hello_html_m1a2484.png

Сформулируем задачу следующим образом:

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

Так как положение точек hello_html_m6e860e58.gif определяют четыре координаты, то это многочлен может определяться максимум четырьмя коэффициентами, т.е. является многочленом третьей степени.

hello_html_m32b3de0.gif(4.15)

Легко установить, что уравнение прямой, проходящей через точки hello_html_60e122f.gif имеет вид: hello_html_m57211b60.gif, (4.16)

где hello_html_588c7756.gif.

Будем выбирать hello_html_m38ce791.gifтак, чтобы равенство

hello_html_m35c05c89.gif(4.17)

имело место при любых hello_html_9eadb5c.gif.

Вычисляя значения hello_html_m38ce791.gif, получим:

Если взять узлами линейной интерполяции числаhello_html_2641278b.gif(4.18) ,то интеграл, вычисленный по формулеhello_html_m344e687b.gif,точно совпадает с интегралом от любого многочлена третьей степени.

Вычислив интеграл по указанной формуле с учётом (4.18), получим

hello_html_m360405f.gif(4.19)

Формула (4.19) и называется квадратурной формулой Гаусса.

С учетом формулы (4.14) формула Гаусса примет вид:

hello_html_m3179fc80.gif(4.20)

Оценка погрешности вычисления интеграла по формуле (4.19) проводится по формуле:

hello_html_m53d4ecad.gifhello_html_m17a9bae6.gif(4.21)

Для повышения точности результата отрезок [a;b] разделим на n частей и применим формулу (4.20) на каждом из них.

Получим формулу для вычисления интеграла:

hello_html_6aee020b.gif(4.22)

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

hello_html_608980d0.gif(4.23)

Пример: Вычислить интеграл hello_html_m5724ff9c.gif по формуле Гаусса при n = 10.

Решение: Имеем a = 0, b = 1, hello_html_m6bbcdc99.gif.

Тогда hello_html_m50e7149b.gif.

Составим таблицу значений, входящих в формулу (4.22)


hello_html_7a9f0571.gif

hello_html_m1f834834.gif

hello_html_m3c5fbf33.gif

hello_html_3e64438f.gif

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







hello_html_m2b737c7a.gif


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

hello_html_13e651a8.gif.



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


Задание 1.

Вычислить интеграл по формуле Гаусса от заданной функции f(x) на отрезке [a;b] при делении отрезка на 10 равных частей. Вычисления провести в Excel.


Задание 2.

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

Результаты оформить в таблицу:

Метод интегрирования

Значение интеграла

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


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


Метод парабол


Метод Гаусса


Задание 3.

Сделать вывод о точности методов.


Таблица 1

Вариант

f(x)

a

b

1

hello_html_183f711.gif

1

2

2

hello_html_m14c0fee.gif

1

2

3

hello_html_23376be2.gif

2

3

4

hello_html_cb18c99.gif

1

2

5

hello_html_62605aa2.gif

1.2

2.2

6

hello_html_2fce6439.gif

0.5

1.5

7

hello_html_m287f02eb.gif

2

3

8

hello_html_m306dbb70.gif

3

4

9

hello_html_m496d07e1.gif

1

2

10

hello_html_7674f817.gif

-1

0

11

hello_html_5d8d4970.gif

-0.5

0.5

12

hello_html_61482604.gif

0,1

1,1

13

hello_html_m6c03ec55.gif

0.2

1.2

14

hello_html_m1f117343.gif

1.5

2.5

15

hello_html_1c81b639.gif

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), т.е. поставлена раздача Коши.

Вначале найдем простейшим способом приближенное значение решения в некоторой точке hello_html_1dc4b99f.gif, где h – достаточно малый шаг.

Заметим, что уравнение (5.1) совместно с начальным условием (5.2) задают направление касательной к искомой интегральной кривой в точке Мhello_html_7cec0eee.gif(xhello_html_7cec0eee.gif,yhello_html_7cec0eee.gif). Двигаясь вдоль этой касательной, получим приближенное значение решения в точке хhello_html_m34745add.gif:

hello_html_4c642337.gif(5.3)

Аналогично, найдем приближенное значение решения в точке hello_html_764925fc.gif, и т.д.

Продолжая эту идею, построим систему равностоящих точек hello_html_7d807d2a.gif, i=0,..,n.

Получение таблицы значений искомой функции y(x) по методу Эйлера заключается в циклическом применении пары формул:

hello_html_m5b21618f.gif(5.4)

Геометрическая иллюстрация метода Эйлера:

hello_html_5ef0b4a4.png

Рис 5.1 Построение ломаной Эйлера


Вместо кривой в реальности получается совокупность прямых – ломаная Эйлера.

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

Метод Эйлера – простейший пошаговый метод.

Отметим, что оценка погрешности метода при таком элементарном рассмотрении невозможна даже на первом шаге. Кроме того, особенностью любого пошагового метода является то, что, начиная со второго шага, исходное значение yhello_html_589afdc8.gif в формуле (5.4) само является приближенным, т.е. погрешность на каждом шаге систематически возрастает.

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


Пример: Решить методом Эйлера дифференциальное уравнение hello_html_m2204c23a.gifc начальным условием y(0) = 1,3 на отрезке [0;1] применив h=0,2.

Решение: Имеем hello_html_m4d92f330.gif.

Составим таблицу значений функции 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,

hello_html_m77935e8d.gif

  1. х2=0,2,

hello_html_m783e1d47.gif

И т.д.

Аналогичные вычисления проводились и для h=0,1.

Таким образом, приближенное решение уравнения получаем в виде таблицы. Построим ломаную Эйлера для h=0,2 и h=0,1 в одной системе координат.

hello_html_m3e98aae3.png


Метод Рунге-Кутта


Если к методу Эйлера подойти другим путем, не используя геометрических построений, то необходимо рассматривать производные функции f(x,y) и раскладывать эту функцию в степенной ряд. Но нахождение производных не является стандартной задачей, применяемой при решении математических задач систем программирования.

Альтернативный путь открывает метод Рунге-Кутта, названный по имени его создателей.

Основная идея метода Рунге-Кутта такова: вместо использования в формулах частных производных функции f(x,y) использовать лишь саму эту функцию, но на каждом шаге вычислять ее значение в нескольких точках.

На практике соблюдается некоторый компромисс между высоким порядком формул и их громоздкостью с одной стороны, и объемом вычислений по ним для достижения заданной точности, с другой. Запишем самую распространяемую формулу Рунге-Кутта четвертого порядка:hello_html_m53d4ecad.gif

hello_html_m7acd5c56.gif, (5.5)

hello_html_72f00c03.gif(5.6)

Общий недостаток методов Рунге-Кутта – отсутствие простых способов оценки погрешности метода. Погрешность на одном шаге оценить сравнительно не трудно, гораздо труднее оценить накопление погрешностей на протяжении многих шагов. Широко используемый на практике для этих методов способ контроля точности – двойной счет: вычисляем решение дифференциального уравнение с шагом h и h/2 , а потом сравниваем полученные результаты.

Пример: Решить дифференциальное уравнение hello_html_m193004da.gif на отрезке hello_html_m279d351d.gif с начальным условием у(0)=1 и шагом h=0.05.

Решение: Сначала решим это уравнение аналитически:

hello_html_m5fb11377.gif- уравнение с разделяющимися переменными.

hello_html_2b72a80e.gif,

hello_html_643cab73.gif

Применим начальное условие hello_html_f0d377d.gif, получим:

hello_html_m5fd3d9be.gif

Таким образом, частное решение данного уравнения, удовлетворяющее заданному начальному условию:

hello_html_m1c45ea56.gif.

Пользуясь этой формулой, можно получить таблицу «точного» решение уравнения.

Найдем приближенное решение дифференциальное уравнение по методу Рунге-Кутта. Проведем последовательные вычисления по формулам (5.5), (5.6):

Имеем: f(x,y)=y(1-x), hello_html_3fea5f90.gif=0, hello_html_142e3ac7.gif=1, h=0.05. Тогда


hello_html_m72f68a74.gif

Подставим найденные значения в формулу (5.5):

hello_html_9c795a3.gif

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

Для сравнения результатов построим таблицу, в которой укажем численные решения, полученные по методу Эйлера, методу Рунге-Кутта и «точное решение».




Х

У

метод Эйлера

метод Рунге-Кутта

«точное решение»

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

hello_html_m2a4ba4cc.gif

3

5

1

0.2

2

hello_html_m55459ca0.gif

2.6

4.6

1

0.2

3

hello_html_63f3d09.gif

0

2

0

0.2

4

hello_html_1b772d80.gif

1

3

1

0.2

5

hello_html_b7da2d7.gif

0

2

0

0.2

6

hello_html_m2b50a835.gif

1

3

1

0.2

7

hello_html_m1c829286.gif

0.5

2.5

0

0.2

8

hello_html_m69f67e3f.gif

0.2

2.2

1

0.2

9

hello_html_6675aeaf.gif

1

3

2

0.2

10

hello_html_53d88e96.gif

3

5

1

0.2

11

hello_html_b4320e6.gif

0.2

2.4

1

0.2

12

hello_html_c8ef175.gif

1

3

0

0.2

13

hello_html_61cc378a.gif

2.6

4,6

2

0.2

14

hello_html_952d437.gif

1.5

3,5

0

0.2

15

hello_html_m5552bd61.gif

2.1

4.1

0

0.2


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


  1. Что является решением дифференциального уравнения?

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

  3. В какой форме получается приближенное решение дифференциального уравнения по методу Эйлера?

  4. В чем основная идея метода Рунге-Кутта?

  5. В чем отличие одношаговых методов Эйлера и Рунге-Кутта?

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



Блок схема алгоритма метода половинного деления:

hello_html_72f3602f.gif





Программа реализации метода половинного деления

для уточнения корня уравнения 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



Блок схема алгоритма метода касательных:

hello_html_59d0a9ad.gif



Программа реализации метода касательных

для уточнения корня уравнения 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)) ; {впишите hello_html_m1822c0e0.gif}

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

Укрупнённая схема алгоритма (блок-схема) метода Гаусса

hello_html_30a50cf8.png

Алгоритмы отдельных блоков метода

Блок 2. С помощью двух вложенных циклов с управляющими переменными i=1,n и j=1,k организуем ввод коэффициентов ai,j и свободных членов bi исходной системы. Для того, чтобы в дальнейшем можно было выполнить в блоке 9 проверку результата, в алгоритме предусмотрено сохранение значений ai,j и bi исходной системы с помощью переприсвоений: cij=aij и di=bi

hello_html_3dc55def.png

Блок 3. Организуем цикл по k, внутри которого производится вычисление по всем шагам прямого хода. Последний п-й шаг прямого хода выводим из цикла.

Блок 4. На каждом шаге прямого хода выполняем поиск ненулевого ведущего элемента.

hello_html_m7603b246.png

Блок 5 - шаг прямого хода. На каждом шаге прямого хода проводим исключение неизвестных путём преобразования коэффициентов и свободных членов системы по полученным ранее рекуррентным формулам.

hello_html_m5e39e206.png

Блок 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.



hello_html_734ac650.png

Блок 9 - проверка результата. В этом блоке подставляя значения полученных неизвестных в исходную систему и используя сохранённые значения коэффициентов системы ci,j и свободных членов di, проводим проверку решения задачи по формуле

hello_html_58eeeb52.png

Блок 9 в алгоритме метода Гаусса рекомендуется использовать только в процессе отладки метода.

hello_html_m47032fcf.png

Программа реализации метода Гаусса решения систем линейных уравнений



{ Практическое занятие №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



Блок схема алгоритма интерполяции функции многочлена Лагранжа

hello_html_60c38bae.png

Программа реализации построения интерполяционного многочлена Лагранжа



{ Практическое занятие №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



Блок схема метода интерполяции сплайнами







hello_html_5160de6f.png









hello_html_md7d916c.png











hello_html_4541885d.png

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

{ Практическое занятие №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



hello_html_7c8148e3.png



Программа реализации вычисления интегралов по формуле прямоугольников



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

Вычисление интегралов при помощи формул Ньютона-Котеса.

Выполнил студент 3 курса гр. Ф.И.О.}

hello_html_m5fffb565.png

hello_html_46edc63e.png



Программа реализации вычисления интегралов по формуле трапеций



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

Вычисление интегралов при помощи формул Ньютона-Котеса.

Выполнил студент 3 курса гр. Ф.И.О.}

hello_html_3034504b.png





Программа реализации вычисления интегралов по формуле Симпсона



{ Практическое занятие №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



Блок схема метода Эйлера решения дифференциальных уравнений:





hello_html_54732321.png





Блок схема метода Рунге-Кутта решения дифференциальных уравнений:



hello_html_m455486e7.png

Программа реализации метода Эйлера решения дифференциальных уравнений

{ Практическое занятие №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. Форма доступа: http://sgtek.ru

  2. Информационно-справочная система «В помощь студентам». Форма доступа: http://window.edu.ru

  3. Информационно-справочная система. Форма доступа: http://dit.isuct.ru.

  4. Информационно-справочная система. Форма доступа: http://www.resolventa.ru




110


Краткое описание документа:

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

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

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

Автор
Дата добавления 28.01.2015
Раздел Математика
Подраздел Другие методич. материалы
Просмотров1038
Номер материала 346046
Получить свидетельство о публикации

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

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Похожие материалы

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