Производная функции на интервале

Вернемся к нашей функции Производная функции на интервале - student2.ru . Рассмотрим ее табличное представление на интервале [-0.2, 1.4] .

xi -0.2 0.2 0.4 0.6 0.8 1.2 1.4
f(xi) 0.04 0.04 0.16 0.36 0.64 1.44 1.96

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

Для этого необходимо найти значения производных в каждой точке функции. Левые это будут производные или правые, принципиально не важно. Важно то, что для точки Производная функции на интервале - student2.ru не существует левой производной, а для точки Производная функции на интервале - student2.ru — правой. Это связано с тем, что в общем случае мы не знаем, как ведет себя функция за пределами заданного интервала. Хотя мы легко можем продолжить зависимость Производная функции на интервале - student2.ru влево и вправо, на практике эта зависимость, как правило, неизвестна.

Итак, расчет левых производных дает зависимость:

Производная функции на интервале - student2.ru -0.2 0.2 0.4 0.6 0.8 1.2 1.4
Производная функции на интервале - student2.ru 0.04 0.04 0.16 0.36 0.64 1.44 1.96
Производная функции на интервале - student2.ru --- -0.2 0.2 0.6 1.4 1.8 2.2 2.6

Для правых производных:

Производная функции на интервале - student2.ru -0.2 0.2 0.4 0.6 0.8 1.2 1.4
Производная функции на интервале - student2.ru 0.04 0.04 0.16 0.36 0.64 1.44 1.96
Производная функции на интервале - student2.ru -0.2 0.2 0.6 1.4 1.8 2.2 2.6 ---

Обратите внимание, что в обоих случаях зависимость Производная функции на интервале - student2.ru является линейной, что соответствует теории.

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

Решение типовых задач

Задача 1. Дана табличная функция Производная функции на интервале - student2.ru на интервале [a,b]. Найти производные функции слева и справа от любой точки на интервале.

Решение.

Используем данные, полученные в лабораторной работе №5 при табулировании функции Производная функции на интервале - student2.ru Пример чтения данных из файла был описан в листинге 26 и здесь не приводится. Будем считать производные для точки Производная функции на интервале - student2.ru при Производная функции на интервале - student2.ru .

Листинг 34

/*Производная функции в точке*/

#include <fstream.h>

#include <math.h>

void main( void )

{

// Массив для хранения значений аргумента и функции

double nArray[11][2];

// Прочитать данные табличной функции из файла,

// занести их в массив nArray и вывести на экран (Листинг 26)

double dResultLeft, dResultRight;

// Расчет производной слева

dResultLeft = ( nArray[5][1] - nArray[4][1] ) / ( nArray[5][0] - nArray[4][0] );

// Расчет производной справа

dResultRight = ( nArray[6][1] - nArray[5][1] ) / ( nArray[6][0] - nArray[5][0] );

// Вывод результата

cout << "\n\nfor x = " << nArray[5][0] << "\n";

cout << "y`(x)Left = " << dResultLeft << "\ny`(x)Right = ";

cout << dResultRight << "\n";

}

 

Задача 2. Дана табличная функция Производная функции на интервале - student2.ru [a,b]. Найти значения производной функции в каждой точке интервала. Занести полученные данные в файл. Построить график производной.

Решение.

Как и в предыдущей задаче воспользуемся данными, полученными в лабораторной работе №5 при табулировании функции Производная функции на интервале - student2.ru . Программный код, осуществляющий чтение приводить не будем. Считаем, что данные прочитаны и занесены в массив nArray.

Листинг 35

/*Производная функции на интервале*/

#include <fstream.h>

#include <math.h>

void main( void )

{

// Массив для хранения значений аргумента и функции

double nArray[11][2];

// Прочитать данные табличной функции из файла,

// занести их в массив nArray и вывести на экран (Листинг 26)

// Вывод заголовка

cout << "\nDerivative\nx\ty`\n";

// Массив для хранения результата

double dResult[10];

ofstream File("derivative.txt");

for ( i = 0; i < 10; i++ )

{

// Расчет производной справа

dResult[i]= (nArray[i+1][1] - nArray[i][1])/(nArray[i+1][0] - nArray[i][0]);

// Вывод результата на экран

cout << nArray[i][0] << "\t" << dResult[i] << "\n";

// Вывод результата в файл

File << nArray[i][0] << "\t" << dResult[i] << "\n";

}

File.close();

}

 

Содержимое файла derivative.txt:

0 0.2

0.2 0.6

0.4 1

0.6 1.4

0.8 1.8

1 2.2

1.2 2.6

1.4 3

1.6 3.4

1.8 3.8

График производной представлен на рис. 19

Производная функции на интервале - student2.ru

Рис. 19

Задание на лабораторную работу №8

Задача 1. Используя табличные данные функции, полученные в соответствии со своим вариантом в лабораторной работе №5, разработать алгоритм и написать по нему программу вычисления производной функции в некоторой точке. Производную считать слева и справа. Результат вывести на экран.

Задача 2. Используя табличные данные функции, полученные в соответствии со своим вариантом в лабораторной работе №5, разработать алгоритм и написать по нему программу вычисления производной на всем интервале задания функции. Результат вывести на экран и в текстовый файл. Построить графики исходной табличной функции и ее производной.

Оформить протокол лабораторной работы.

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

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

1. Что означают термины «производная слева» и «производная справа»?

2. Если табличная функция задана на n точках, в скольких точках можно посчитать производные? Почему?

Лабораторная работа №9

Цель: усовершенствовать навыки программирования на примере решения задач численного интегрирования.

Задачи:

1) Разработать алгоритм и написать по нему программу численного нахождения значения определенного интеграла.

2) Разработать алгоритм и написать по нему программу численного нахождения функции неопределенного интеграла.

Наши рекомендации