Полиномиальная интерполяция данных
Лекция 2
ОПЕРАЦИИ И ФУНКЦИИ МАТЕМАТИЧЕСКОГО АНАЛИЗА
Вычисление сумм рядов
Для вычисляемой и инертной форм вычисления сумм служат функции:
Вычисляемая форма: | Инертная форма: |
sum(f,k) | Sum(f,k) |
sum(f,k=m..n) | Sum(f,k=m..n) |
где f – функция, задающая члены суммируемого ряда,
k – индекс суммирования,
m и n – целочисленные пределы изменения k.
Значение n может приниматься бесконечным, тогда для n используется константа infinity.
Инертная форма начинается с большой буквы и служит для воспроизведения заданного выражения.
Примеры:
>Sum(k^2, k=1..5)=sum(k^2, k=1..5);
>sum(k^2,k);
>Sum(1/n!,n=1..infinity)=sum(1/n!,n=1..infinity);
Вычисление произведений
Для вычисления произведений используются функции:
Вычисляемая форма: | Инертная форма: |
product(f,k) | Product(f,k) |
product(f,k=m..n) | Product(f,k=m..n) |
Примеры :
>Product(k^2, k=1..5)=product(k^2, k=1..5);
>product(k^2,k);
>Product(1/n!,n=1..infinity)=
product(1/n!,n=1..infinity);
Вычисление производных
Для вычисления производных используются следующие функции:
Вычисляемая форма: | Инертная форма: |
diff(f,x1,x2,…,xn) | Diff(f,x1,x2,…,xn) |
diff(f,[x1,x2,…,xn]) | Diff(f,[x1,x2,…,xn]) |
где f – дифференцируемое алгебраическое выражение, в частности функция f(x1,x2,…,xn) n переменных, по которым производится дифференцирование.
|
|
Первая из этих функций вычисляет в простейшем случае diff(f(x),x) первую производную функции f(x) по переменной x. При n>1 вычисления производных выполняются рекурсивно, т.е. diff(f(x),x,y) эквивалентно diff(diff(f(x),x),y). Оператор $ можно использовать для вычисления производных высокого порядка. Для этого после имени соответствующей переменной ставится этот оператор и указывается порядок производной. Например, выражение diff(f(x),x$4) вычисляет производную 4-го порядка и эквивалентно записи diff(f(x),x,x,x,x). А diff(g(x,y),x$2, y$3) эквивалентно diff(g(x,y),x,x,y,y,y).
Примеры :
>Diff(sin(x),x)=diff(sin(x),x);
>Diff(x^3+y^2,x,y)=diff(x^3+y^2,x,y);
>Diff(x^6/6!,x$6)=diff(x^6/6!,x$6);
>diff([sin(x),x^n,exp(a*x)],x);
>simplify(%);
>f(x,y):=cos(x)*y^3;
>Diff(f(x,y),x)=diff(f(x,y),x);
>Diff(f(x,y),x,y)=diff(f(x,y),x,y);
>Diff(f(x,y),[x,y])=diff(f(x,y),[x,y]);
>Diff(f(x,y),x$4)=diff(f(x,y),x$4);
>Diff(f(x,y),x$3,y$2)=diff(f(x,y),x$3,y$2);
Для вычисления производных может использоваться дифференциальный оператор D. Он позволяет создавать более компактные выражения, чем функции diff и Diff. Дифференциальный оператор может записываться в формах:
D(f) или D[i](f)
где f – выражение или функция,
i – положительное целое число, выражение или последовательность.
Оператор D(f) вычисляет имя производной от f. В форме D(f)(x) этот оператор подобен diff(f(x),x).
|
|
>D(sin);
cos
>D(sin)(x)=diff(sin)x,x);
cos(x)=cos(x)
>D(sin)(Pi);
-1
Если f – функция n аргументов, то D[i](f) вычисляет частную производную по отношению к i-му аргументу. В общем случае D[i,j](f) эквивалентно D[i](D[j](f)) и D[](f)=f.
>fun:=(x)->sin(x^2);
>D(fun);
>diff(fun(x),x);
>f:=(x,y,z)->x*exp(y)+ln(z);
>D[1](f);
>D[2](f);
>D[3](f);
Вычисление интегралов
Для вычисления интегралов используются функции:
Вычисляемая форма: | Инертная форма: |
int(f,x) | Int(f,x) |
int(f,x=a..b) | Int(f,x=a..b) |
int(f,x=a..b,continuous) | Int(f,x=a..b,continuous) |
где f – подынтегральная функция,
x – переменная интегрирования,
a и b – нижний и верхний пределы интегрирования,
continuous – опционально заданное условие.
Maple старается найти аналитическое значение интеграла. Если это не удается, то возвращается исходная запись интеграла. В этом случае для вычисления определенного интеграла надо использовать функцию evalf(int(f,x=a..b)).
>Int(sin(x),x)=int(sin(x),x);
>Int(a*x^n,x)=int(a*x^n,x);
>Int(ln(x)^3,x)=int(ln(x)^3,x);
В отличие от функции дифференцирования, для функции интегрирования нельзя задавать подынтегральную функцию в виде списка или множества, однако возможно вычисление сумм интегралов и интегралов сумм, а также интегралов от полиномов.
|
|
>sum(int(x^i,x),i=1..5);
>int(sum(x^i,i=1..5),x);
>P(x):=a*x^3+b*x^2+c*x+d;
>int(P(x),x);
Если Maple не может вычислить интеграл, то можно попытаться найти его значение в виде многочлена
>int(exp(x^4),x);
>convert(taylor(%,x=0,10),polynom);
Для вычисления определенных интегралов, необходимо указывать пределы интегрирования.
>Int(x^1.5,x=0..5)=int(x^1.5,x=0..5);
>Int(x*exp(-x),x=0..infinity)=
int(x*exp(-x),x=0..infinity);
Опция continuous, добавленная в качестве четвертого аргумента команды, вынуждает Maple игнорировать любые возможные разрывы подынтегральной функции в диапазоне интегрирования.
>Int(1/(x-1)^2,x=0..2)=
int(1/(x-1)^2,x=0..2,continuous);
Для вычисления кратных интегралов функции int и Int нужно применять неоднократно:
>Int(Int(x^2*y^2,x),y)=int(int(x^2*y^2,x),y);
В качестве пределов интегрирования могут быть функции:
>Int(Int(2-x-y,x=sqrt(y)..y^2),y=0..1)=
int(int(2-x-y,x=sqrt(y)..y^2),y=0..1);
Если значение интеграла нельзя найти в аналитическом виде, можно получить его значение с заданной точностью:
>Int(1/(exp(x^2)+x),x=0..1)=
int(1/(exp(x^2)+x),x=0..1);
>evalf(%,20);
.58592031278103454744=.58592031278103454744
>evalf(%);
|
|
.5859203128=.5859203128
Вычисление пределов функций
Для вычисления пределов функции f в точке x=a используются следующие функции:
Вычисляемая форма: | Инертная форма: |
limit(f,x=a) | Limit(f,x=a) |
limit(f,x=a,dir) | Limit(f,x=a,dir) |
где f – алгебраическое выражение,
x – имя переменной,
dir – опция, указывающая направление поиска предела (left – слева, right – справа, real – в области вещественных значений, complex – в области комплексных значений).
Значением a может быть бесконечность (как положительная, так и отрицательная).
>Limit(1-exp(-x),x=infinity);
>value(%);
1
>Limit(sin(x)^2,x=Pi/2)=limit(sin(x)^2,x=Pi/2);
>Limit(exp(x),x=infinity)=limit(exp(x),x=infinity);
>Limit(exp(x),x=-infinity)=limit(exp(x),
x=-infinity);
>Limit(1/x,x=0,real)=limit(1/x,x=0,real);
>Limit(tan(x),x=Pi/2,right)=limit(tan(x),x=Pi/2,
right);
>Limit(tan(x),x=Pi/2,left)=limit(tan(x),x=Pi/2,
left);
>plot(tan(x),x=0..Pi,y=-10..10);
Разложение функций в ряд
Для разложение функции в ряд служат следующие функции:
series (f,eqn)
series (f,eqn,n)
где f – разлагаемая функция,
eqn – условие (например, в виде x=a) или имя переменной,
n – необязательное и неотрицательное целое число, задающее число членов ряда (по умолчанию n=6, но может переустанавливаться системной переменной Order).
Если в качестве eqn задано имя переменной, это соответствует разложению по этой переменной в области x=0. Задав eqn в виде x=a можно получить разложение по переменной x в окрестности точки x=a.
Разложение получается в форме степенного многочлена. остаточная погрешность задается членом вида O(xn). При точном разложении этот член отсутствует. В общем случае для его удаления можно использовать функцию convert.
>series(sinh(x),x);
>series(sinh(x),x,10);
>series(2*x^2-x,x=5,10);
>f:=sin(x)/x;
>p:=series(f,x,8);
Для разложения в рядТейлора используется функция:
taylor (f,eqn,n)
где f – разлагаемая функция,
eqn – условие (например, в виде x=a) или имя переменной,
n – необязательное и неотрицательное целое число, задающее число членов ряда (по умолчанию n=6).
Задав eqn в виде x=a можно получить разложение по переменной x в окрестности точки x=a. Если в качестве eqn задано имя переменной, то разложение ищется в окрестности точки x=0, т.е. фактически вычисляется рядМаклорена.
>taylor(1-exp(x),x=1,4);
Для разложения в ряд Тейлора функции нескольких переменных используются функции:
mtaylor(f,v)
mtaylor(f,v,n)
mtaylor(f,v,n,w)
где f – разлагаемая функция,
v – список имен или равенств,
n – необязательное число, задающее порядок разложения,
w – необязательный лист целых чисел, задающих «вес» каждой переменной списка v.
Эта функция должна вызываться из библиотека Maple.
>readlib(mtaylor):
>mtaylor(sin(x*y),[x,y],10);
Для вычисления асимптотическихразложений функций (в виде рядов) используются функции:
asympt(f,x)
asympt(f,x,n)
где f – разлагаемая функция,
x – имя переменной, по которой производится разложение,
n – необязательное число, задающее порядок разложения.
>asympt(x/(1-x^2),x);
Полиномиальная интерполяция данных
Если данные некоторой зависимости y(x) заданы векторами X и Y её дискретных значений, то для получения интерполяционного степенного многочлена – полинома можно использовать функцию:
Вычисляемая форма: | Инертная форма: |
interp(X,Y,v) | Interp(X,Y,v) |
Переменная v указывает имя переменной интерполяционного полинома. Векторы X и Y должны содержать n+1 координат точек исходной зависимости, где n – степень интерполяционного многочлена.
>X:=[1,2,3,4,5]: Y:=[0.3,1,2,2,1]:
>Digits:=5: f:=interp(X,Y,a);
Дата добавления: 2020-11-27; просмотров: 58; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!