Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов
Шрифт:
Интервал:
Закладка:
(4.1)
Как известно, значение производной геометрически характеризуется наклоном касательной к графику f(х) в точке x=0. Простейший способ наблюдать построение касательной к заданной точке функции заключается в применении функции showtangent из пакета student. Например, команды
> with(student): showtangent(sin(x), x = 1.7);
строят график синусоиды и касательной к ней в точке х=1.7.
Помимо производной, часто встречается понятие дифференциала
df(x) =f'(x)∙∆x,то есть произведения производной функции на приращение ее аргумента Δx→0.
Производная от производной f(x), то есть функция f''(x) называется производной второго порядка. Могут быть производные третьего, четвертого и так далее, словом производные высшего порядка. Все математические системы способны вычислять такие производные, как и первую производную f'(x) от функции f(x).
Довольно часто встречаются функции ряда переменных, например f(x, у, z, …). В этом случае может идти речь о частных производных по переменным х, у, z, …. Например, частной производной по переменной х будет выражение:
Подобные выражения нетрудно составить и для частных производных по другим переменным. Можно считать, что при вычислении частной производной по какой то переменной остальные переменные рассматриваются просто как константы. Можно также говорить о частных дифференциалах. Полный дифференциал функции многих переменных можно определить как:
Системы символьной математики позволяют вычислять производные как символьной, так и в численной форме.
Выражение (4.1) показывает, что производная f'(x) может быть найдена путем вычисления предела, записанного в (4.1). Этот популярный у математиков метод получил название Δ-метода. В СКМ он используется редко, поскольку они имеют прямые операторы или функции для вычисления производных.
4.3.2. Функции дифференцирования diff и Diff
Для вычисления производных Maple имеет следующие основные функции:
diff(a, x1, х2, ..., xn)
diff(a, [x1, х2, ..., хn])
Diff(a, x1, х2, ..., xn)
Diff(a, [x1, х2, ..., xn])
Здесь а — дифференцируемое алгебраическое выражение, в частности, функция f(x1, х2, хn) ряда переменных, по которым производится дифференцирование. Функция Diff является инертной формой вычисляемой функции diff и может использоваться для естественного воспроизведения производных в документах.
Первая из этих функций (в вычисляемой и в инертной форме) вычисляет частные производные для выражения а по переменным х1, х2, …, хn. В простейшем случае diff(f(x),x) вычисляет первую производную функции f(x) по переменной х. При n, большем 1, вычисления производных выполняются рекурсивно, например, diff(f(x), х, у) эквивалентно diff(diff(f(x), х), у). Оператор $ можно использовать для вычисления производных высокого порядка. Для этого после имени соответствующей переменной ставится этот оператор и указывается порядок производной. Например, выражение diff(f(x),x$4) вычисляет производную 4-го порядка и эквивалентно записи diff(f(x),x,x,x,x). A diff(g(x,y),x$2,y$3) эквивалентно diff(g(x,y),x,x,y,y,y).
Примеры визуализации и вычисления производных (файл diff):
> restart;
> Diff(a*x^n,x)=diff(а*х^n,х);
> Diff(a*sin(b*x),x)=diff(a*sin(b*x),x);
> Diff([sin(x),х^n,ехр(a*x)], x)=diff([sin(x),x^n, exp(a*x)], x);
> Diff(а*х^n,x$3)=diff(а*х^n,x$3);
> Diff([х^2,х^3,х^n],x)=diff([х^2,х^3,х^n],x);
> simplify(%);
Как видно из приведенных примеров, функции вычисления производных могут использоваться с параметрами, заданными списками. Приведенные ниже примеры показывают эти возможности и иллюстрируют дифференцирование функции пользователя для двух переменных:
> restart;
> f(х,у):=cos(х)*у^3;
f(x,y):=cos(x)y³> Diff(f(х, y), x) = diff(f(x, y), x);
> Diff(f(x, у), y) = diff(f(x, у), y);
> Diff(f(x,y),x,y)=diff(f(x,у),x,y);
> Diff(f(x,y),x$4)=diff(f(x,y), x$4);
> Diff(f(х,у),y$2)=diff(f(х,у), у$2);
> Diff(f(х,у), х$4,у$4)=diff(f(х,у),х$3,у$2);
Получаемые в результате дифференцирования выражения могут входить в другие выражения. Можно задавать их как функции пользователя и строить графики производных.
4.3.3. Дифференциальный оператор D
Для создания функций с производными может также использоваться дифференциальный оператор D. Порою он позволяет создавать более компактные выражения, чем функции diff и Diff. Дифференциальный оператор можно записывать в следующих формах: D(f) или D[i](f), где параметр f — выражение или имя функции, i — положительное целое число, выражение или последовательность. Оператор D(f) просто вычисляет имя производной от f, поскольку в этой форме он эквивалентен unnaply(diff(f(x),x),x). В форме D(f)(x) этот оператор подобен diff(f(x),x).
Приведем примеры дифференцирования функций, заданных только именами, и функций с одним параметром (файл D):
> restart;
> D(cos^2);
-2 sin cos> D(exp^2+cos^2+tan+GAMMA);
2exp² - 2sin cos + 1 + tan² + ΨΓ> D(sin)(x)=diff(sin(x), x);
cos(x) = cos(x)> D[1](sin*cos);
cos² - sin²Следующий пример показывает дифференцирование функции пользователя fun с применением дифференциального оператора D и функции diff:
> fun:=(x)->sin(x^2);
fun:= x→sin(x²)> D(fun)=diff(fun(x),x);
(x→2 cos(x²)x) = 2 cos(x²)xДифференциальный оператор можно применять и для дифференцирования функций нескольких переменных по заданной переменной (файл D):
> f := (х, у, z)->х*ехр(у)+ln(z);
f: = (х, у, z) → х еу + ln(z)> D[1](f);
(x,y,z) → ey> D[2](f);
(x,y,z) → xey> D[3](f);
(x,y,z) → ½Пример применения дифференциального оператора для функции f, заданной программным объектом-процедурой, представлен ниже:
> restart;
> f:=proc(x,b,n) local i,d,s;
> s:=0;
> for i from n by -1 to 0 do s:=s*x+b[i] od;
> s
> end:
-> D[1](f);
proc(x, b, n)
local i, s, sx;
sx := 0;
s := 0;
for i from n by -1 to 0 do sx
sx := sx×x + s;
s := sx×x + b[i]
end do;
sx
end proc
Этот пример показывает реализацию схемы Горнера для полинома b степени n от переменной х. При этом применение оператора дифференцирования возвращает процедуру. Ряд интересных возможностей по вычислению производных предоставляет пакет расширения student.
4.3.4. Импликативное дифференцирование
Иногда подлежащая дифференцированию зависимость задана импликативно, т.е. в виде уравнения f. Для дифференцирования таких зависимостей служит функция, используемая в виде:
implicitdiff(f,у,х)
implicitdiff(f,у,x1,...,xk)
Примеры применения импликативного дифференцирования приведены ниже (файл impldiff):
> f1 := х*у=1:implicitdiff(f1, у, x);
> subs(y=1/x,%);
> f2:=2*х^4-3*х^2*у^2+у^4=16:implicitdiff(f2, у, х);
> f3:=x*cos(у)+y*cos(х)=1:implicitdiff(f3,у,x);
В справке по этой функции можно найти более сложные формы записи этой функции и дополнительные примеры ее применения.
4.3.5. Maplet-вычислитель производных Derivatives
При обучении основам математического анализа удобны обучающие средства на основе Maplet-технологии. Эти новые средства (их не было даже в Maple 9) размещены в позиции Tools меню системы Maple 9.5 при ее применении в стандартном виде. Команда Tools→Tutors Calculus-Single Variables→Derivatives… открывает окно Maple-вычислителя производных, показанное на рис. 4.1.
Рис. 4.1 Окно Maplet-вычислителя производных
В окне можно в интерактивном режиме задать выражение для функции f(x), вычислить производную f'(x) и, нажав кнопку Dispay, получить графики заданной функции и ее производной в заданных пределах изменения х от а до b. При закрытии окна графики появляются в текущей строке вывода системы Maple 9.5.
4.3.6. Maplet-инструмент по методам дифференцирования
При изучении раздела производных в курсе математического анализа особое значение имеют навыки учащегося в пошаговом дифференцировании выражений в аналитическом виде. В то время, как инженера или научного работника часто удовлетворяет конечное выражение при дифференцировании заданного выражения, учащегося не в меньшей (а порою в куда большей) мере интересуют детали промежуточных вычислений.