Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Болтушкин Л.С., группа 712-2, лабораторная 4.docx
Скачиваний:
6
Добавлен:
04.10.2024
Размер:
532.37 Кб
Скачать

2 Численное дифференцирование

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

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

Рисунок 2.1 - Функция

2.1 Левая и правая разностные производные

Для вычисления производной функции в любой точке используется левая разностная производная (рисунок 2.2) и правая разностная производная (рисунок 2.3).

Рисунок 2.2 – Формула левой разностной производной

Рисунок 2.3 – Формула правой разностной производной

Код разностей производной представлен на изображении ниже (рисунок 2.4).

Рисунок 2.4 – Код программы

2.2 Центральная разностная производная

Для вычисления производной функции в любой точке также используется центральная разностная производная (рисунок 2.5).

Рисунок 2.5 – Формула центральной разностной производной

Код центральной разностной производной представлен на изображении ниже (рисунок 2.6).

Рисунок 2.6 – Код программы

На рисунке 2.7 изображен результат работы программы.

Рисунок 2.7 – Результат программы

Таблица 2 – Сравнение полученных значений

Аналитический вид заданной функции

Точное значение производной

Левая разность

Правая разность

Центральная разность

f(x)=cos(x+3)−3x+2)

-2,72

-2,67

-2,77

-2,72

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

3 Численное решение дифференциального уравнения (задача Коши)

Дана задача Коши вида: 𝑦 ′ = 𝑓 (𝑥, 𝑦), 𝑦 (𝑥0) = 𝑦0 и последовательность точек 𝑥𝑖, 𝑖 = 0, … 20, c шагом ℎ = 0.1: 𝑥 = {0, 0.1,0. 2… ,2}.

Нужно составить программу, с помощью следующих методов определяющую последовательность точек

• 𝑦̃1(𝑥𝑖), 𝑖 = 1… ,20 – методом Эйлера (Рунге-Кутта 1-го порядка)

• 𝑦̃2(𝑥𝑖), 𝑖 = 1… ,20 – методом Рунге-Кутта 2-го порядка

• 𝑦̃4(𝑥𝑖), 𝑖 = 1… ,20 – методом Рунге-Кутта 4-го порядка.

Для данной в тестовом вопросе № 3 задачи Коши необходимо найти:

• численное решение с помощью разработанной программы всеми тремя способами (последовательности 𝑦̃1(𝑥𝑖), 𝑦̃2(𝑥𝑖), 𝑦̃4(𝑥𝑖), 𝑖 = 1, … ,20)

• точное решение любым способом в виде функции 𝑦(𝑥).

Рисунок 3.1 – Дифференциальное уравнение

3.1 Метод Эйлера

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

Рисунок 3.2 – Формула метода Эйлера

Реализация метода Эйлера на языке программирования C# изображена на рисунке 3.3.

Рисунок 3.3 – Код программы