Компания ALT Linux
Опубликован: 12.03.2015 | Доступ: свободный | Студентов: 582 / 64 | Длительность: 20:55:00
Лекция 8:

Интегрирование и дифференцирование

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Аннотация: Рассматриваются символьные вычисления интегралов и производных функций.

Дифференцирование в Octave осуществляется в технике символьных переменных. Для работы с символьными переменными в Octave подключите специальный пакет расширений octave-symbolic. Установка пакетов расширений описана в первой главе, техника работы с символьными переменными — в п. 2.7. В функциях интегрирования реализованы различные численные алгоритмы.

8.1 Вычисление производной

Дифференцирование в Octave осуществляется с помощью функции differentiate(f(a,x [,n])), где a — символьное выражение, xпеременная дифференцирования, n — порядок дифференцирования (при n = 1 параметр можно опустить). Иными словами, функция вычисляет n-ю производную выражения a по переменной x.

Производной функции f (x) в точке x_0 называется предел, к которому стремится отношение бесконечно малого приращения функции к соответствующему бесконечно малому приращению аргумента. Геометрический смысл этого понятия заключается в том, что если к графику функции f (x) провести касательную в точке x_0, то её угловой коэффициент, будет равен значению производной в этой точке k = f’(x). Следовательно, уравнение касательной к линии в заданной точке имеет вид: y(x) = f’(x)(x-x-0)+f(x-0)

График функции и её касательной

Рис. 8.1. График функции и её касательной

Пример 8.1. Записать уравнение касательной к функцииf(x)=\frac{3x^2-7}{2x+1}, в точке x-o=-1.

Из листинга 8.1 видим, что уравнение касательной к функции в заданной точке имеет вид yy(x)=14x+18.

	
clear all;
x0=-1;
symbols
x = sym("x");
f =(3 - x^2-7) /(2 - x+1);
f1=differentiate(f,x)% Первая производная от заданной функции
% Уравнение касательной: k=subs(f1,x,x0), f(x0)=subs(f,x,x0)
y=subs (f1, x, x0) - (x-x0)+subs(f, x, x0)
f1 =(6.0)*x*(1.0+(2.0)*x)^(-1)-(2.0)*(-7.0+(3.0)*x^(2.0))*(1.0+(2.0)*x)^(-2)
y =18.0-9.029803704631804845E-19*I+(14.0-6.0198691364212032297E-19*I)*x
Листинг 8.1. Получение уравнения касательной (пример 8.1).

На рис. 8.1 представлены графики заданной функции и её касательной. Рисунок построен с помощью команд из листинга 8.2.

	
clear all; clf; cla;
symbols
x=sym ("x");
L1=ezplot(’(3*x^2-7)/(2*x+1)’);
set(L1, ’LineWidth’, 3, ’Color’, ’k’)
hold on
L2=ezplot(’18+14*x’);
set(L2, ’LineWidth’, 2, ’Color’, ’k’, ’Marker’, ’o’)
set(gca, ’xlim’, [-4, 2]); set(gca, ’ylim’, [-6, 10]);
set(gca, ’xtick’, [-4:2]); set(gca, ’ytick’, [-6:2:10]);
grid on; xlabel(’x’); ylabel(’y’);
title(’(3*x^2-7)/(2*x+1), 18+14*x’);
Листинг 8.2. График функции и её касательной (пример 8.1).

Пример 8.2. Найти a) f'(x)=\frac{5sin(2x)}{\sqrt{cos(2x)} и б) f'(x)=tan\sqrt[3]{ln(x)}.

Решение примера показано влистинге 8.3.

	
>>> clear all;
>>> symbols
>>> x = sym("x");
% Пример а)
>>> f =(5- Sin(2 - x))/Sqrt(Cos(2 - x));
>>> f1=differentiate(f, x)
f1 =(5.0)*sin((2.0)*x)^2*cos((2.0)*x)^(-3/2)+(10.0)*sqrt(cos((2.0)*x))
% Пример б)
>>> f=Tan(Log(x)^(1/3));
>>> f1=differentiate(f, x)
f1 = (0.333)*(1+tan(log(x)^(0.333))^2)*x^(-1)*log(x)^(-0.666)
Листинг 8.3. Нахождение производных (пример 8.2).

Если функция y(x) задана параметрическими уравнениями x=\phi(t),y=\psi(t), то производная вычисляется по формуле x=\frac{\phi'(t)}{\psi'(t)}=\frac{y'_t}{x_t}

Пример 8.3. Найти производную функции, заданной параметрически:

\left\{\begin{aligned}x(t)=3cos^3(t)\\y(t)=3sin^3(t)\end{aligned}

Листинг 8.4 содержит решение примера.

	
>>> clear all;
>>> symbols
>>> t = sym("t");
>>> x=3-Cos(t)^3;
>>> y=3-Sin(t)^3;
>>> xt=differentiate(x, t);
>>> yt=differentiate(y, t);
>>> f=yt/xt
f = -sin(t) - cos(t) ^( -1.0)
Листинг 8.4. Производная параметрической функции (пример 8.3).

Пример 8.4. Найти производные a) f''(x)=ln(cos(x)) б) f^{IV}(x)=tan(x (Листинг 8.5).

	
>>> clear all;
>>> symbols
>>> x=sym("x");
% Пример а)
>>> f=Log(Cos(x));
>>> differentiate(f, x, 2)
ans = -1-cos(x)^(-2)-sin(x)^2
% Пример б)
>>> f=Tan(x);
>>> differentiate(f, x, 4)
ans = 16-(1+tan(x)^2)^2-tan(x)+8-(1+tan(x)^2)-tan(x)^3
Листинг 8.5. Производные высших порядков (пример 8.4).

Пример 8.5. Найти производные y''(x)

\left\{\begin{aligned}x(t)=t-sin(t)\\y(t)=t-cos(t)\end{aligned}

Выражение для вычисления второй производной параметрической функции: y''(x)=\frac{\left(\frac{y_t'}{x_t'}\right)'}{x_t'}=\frac{y_t''x_t'-x_t''y_t'}{(x_t')^3}.

В листинге 8.6 представлено решение примера

	
>>> clear all;
>>> symbols
>>> t=sym("t");
>>> x=t-Sin(t);
>>> y=1-Cos(t);
>>> xt=differentiate(x, t);
>>> yt=differentiate(y, t);
>>> xt2=differentiate(x, t, 2);
>>> yt2=differentiate(y, t, 2);
>>> z=(yt2-xt-xt2-yt)/xt^3
z=-(1-cos(t))^(-3.0)-(cos(t)-(-1+cos(t))+sin(t)^2)
Листинг 8.6. Вторая производная параметрической функции (пр. 8.5).
Исследование функции на возрастание и убывание

Рис. 8.2. Исследование функции на возрастание и убывание
< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Алексей Игнатьев
Алексей Игнатьев

Возможна ли разработка приложения на Octave с GUI?

Евгений Ветчанин
Евгений Ветчанин

Добрый день. Я самостоятельно изучил курс "Введение в Octave" и хочу получить сертификат. Что нужно сднлать для этого? Нужно ли записаться на персональное обучение с тьютором или достаточно перевести деньги?