Полиномиальная интерполяция данных

Лекция 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!