Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Как в Matlab вычислить в символьном виде предел, производную, интеграл, разложить функцию в степенном виде? (В1Б5,В2Б12,В3Б24).



Вычисление пределов – команда limit

 

Для вычисления пределов функции F(x), заданной в аналитическом (символьном) виде, служит команда limit, которая используется в одном из следующих вариантов:

limit(F, x, a) – возвращает предел символьного выражения F в точке x = a;

limit(F, x, a, 'right') или limit(F, x, a, 'left') – возвращает предел в точке a справа или слева.

Продемонстрируем приемы вычисления пределов на следующих примерах:

 

а); б) с); д);

е); ж).

 

Решения в указанном порядке имеют вид:

> > syms a x

> > limit(sin(a*x)/(a*x), x, 0)

ans =

> > limit((1+3/x)^(2*x), x, inf)

ans =

exp(6)

> > limit(1/(1-x), x, 1)

ans =

NaN

Здесь переменная NaN означает, что предела функции в точке x = 1 не существует.

> > limit(1/(1-x), x, 1, 'right')

ans =

-inf

Правосторонний предел функции в точке x = 1 существует и равен - ∞.

> > limit(1/(1-x), x, 1, 'left')

ans =

inf

Левосторонний предел функции в точке x=1 существует и равен +∞.

> > limit(x*(log(a+x)-log(x))/5, x, inf)

ans =

1/5*a

Вычисление производных – команда diff

 

Для вычисления в символьном виде производных от выражения S служит команда diff, записываемая в форме diff(S, x, n). Она возвращает символьное значение n-ой производной (производной степени n) от символьного выражения или массива символьных выражений S по переменной x, т. е.

Sn(x) =.

В формате diff(S, x) находится первая производная (n = 1 по умолчанию).

Найти первую и третью производные функции y = x2sinx.

Решение:

> > syms x

> > y=x^2*sin(x);

> > diff(y, x)

ans =

2*x*sin(x)+x^2*cos(x)

> > diff(y, x, 3)

ans =

6*cos(x)-6*x*sin(x)-x^2*cos(x)

Если S массив, то diff возвращает массив, элементами которого являются производные от исходных функций, образующих массив.

Например:

> > syms a x

> > Y=[a*log(x); x^a]

[ a*log(x)]

[ x^a]

> > diff(Y, x)

ans =

[ a/x]

[ x^a*a/x]

Если выражение S зависит от нескольких переменных, например, S=S(x, y), то ее частная производная (или S'x(x, y) ) по аргументу x есть производная этой функции по x при постоянном значении y.

В декартовой системе координат на плоскости xOy градиент функции S(x, y) есть вектор

grad S = .

Частными производными второго порядка функции S=S(x, y) называются частные производные от ее первых производных, , т. е.

= , = , = , = .

Частные производные второго порядка обозначаются также символами

S''xx(x, y), S''xy(x, y), S''yx(x, y), S''yy(x, y). Аналогично определяются и обозначаются частные производные более высоких порядков. Смешанные производные второго порядка, отличающиеся только порядком дифференцирования, равны между собой при условии их непрерывности: S''xy(x, y) = S''yx(x, y).

Рассмотрим пример. Для функции двух переменных

f(x, y) = arcsinxy

найти gradf(x; y) и вычислить его в точке (0; 0). Проверить выполнение условия f''xy(x, y) = f''yx(x, y).

Решение:

> > syms x y

> > f=asin(x*y);

> > x1=diff(f, x)

x1 =

y/(1-x^2*y^2)^(1/2)

> > pretty(x1)

y

---------------

2 2 1/2

(1 - x y )

 

Т. е. =.

 

> > y1=diff(f, y)

y1 =

x/(1-x^2*y^2)^(1/2)

> > pretty(y1)

x

---------------

2 2 1/2

(1 - x y )

 

Т. е. =. Тогда grad(arcsinxy) =.

 

> > subs([x1 y1], [x y], [0 0])

ans =

0 0

Итак, grad(arcsinxy)(0; 0) = (0; 0).

> > xy=diff(x1, y)

xy =

1/(1-x^2*y^2)^(1/2)+y^2/(1-x^2*y^2)^(3/2)*x^2

> > [m]=simple(xy)

m =

1/(1-x^2*y^2)^(3/2)

> > pretty(m)

---------------

2 2 3/2

(1 - x y )

 

Следовательно, =.

 

> > yx=diff(y1, x)

yx =

1/(1-x^2*y^2)^(1/2)+y^2/(1-x^2*y^2)^(3/2)*x^2

> > [m]=simple(yx)

m =

1/(1-x^2*y^2)^(3/2)

> > pretty(m)

---------------

2 2 3/2

(1 - x y )

 

Значит, =.

Окончательный результат:

grad(arcsinxy)(0; 0) = (0; 0) и f''xy(x, y) = f''yx(x, y) =

Вычисление интегралов – команда int

 

В ряде случаев возникает необходимость вычисления неопределенных и определенных интегралов

I = dx и I = dx.

Здесь f(x) – подынтегральная функция независимой переменной x, a нижний и b верхний пределы интегрирования для определенного интеграла.

Команда int(f, x) возвращает неопределенный интеграл (первообразную функцию) от символьного выражения f по переменной x.

Команда int(f, x, a, b) возвращает значение определенного интеграла от символьного выражения f по переменной x с пределами от а до b.

Подынтегральная функция f может зависеть от символьных параметров, а также быть массивом символьных выражений.

Если f массив, то int(f, x) возвращает массив первообразных, а int(f, x, a, b) – массив значений определенных интегралов. Примеры:

> > syms x

> > f=[sin(x); 1/x]

f =

[ sin(x)]

[ 1/x]

> > int(f, x)

ans =

[ -cos(x)]

[ log(x)]

> > int(f, x, 1, 2)

ans =

[ -cos(2)+cos(1)]

[ log(2)]

Пример:

Вычислить неопределенный интеграл

 

dx.

Решение:

> > syms x a

> > int(log(x+a)/sqrt(x+a), x)

ans =

2*log(x+a)*(x+a)^(1/2)-4*(x+a)^(1/2)

> > [m]=simple(ans)

m =

2*(x+a)^(1/2)*(log(x+a)-2)

Полученную первообразную 2(ln(x+a) - 2), зависящую от символьного параметра a, проверим дифференцированием по x:

> > diff(m, x)

ans =

1/(x+a)^(1/2)*(log(x+a)-2)+2/(x+a)^(1/2)

> > [m]=simple(ans)

m =

log(x+a)/(x+a)^(1/2)

> > pretty(m)

 

log(x + a)

-----------

1/2

(x + a)

В результате дифференцирования получена подынтегральная функция

,

т. е. выражение 2(ln(x+a) - 2) действительно является первообразной.

Разложение в ряд Тейлора – команда taylor

 

В задачах аппроксимации и приближения функций f(x) важное место занимает их разложение в ряд Тейлора в окрестности точки a:

 

f(x) = .

Частным случаем этого ряда при a = 0 является ряд Маклорена:

 

f(x) = .

 

Для получения разложения аналитической функции f в ряд Тейлора (и Маклорена) служит команда taylor:

taylor(f) – возвращает разложение в ряд Маклорена до шестой степени. В общем случае, когда небходимо получить разложение в ряд Тейлора до n - й степени в точке a, относительно которой находится разложение, используется команда taylor(f, n, x, a).

Примеры разложения в ряды Тейлора и Маклорена функции cos(x):

> > syms x

> > taylor(cos(x))

ans =

1-1/2*x^2+1/24*x^4

> > taylor(cos(x), 5, x, 2)

ans =

cos(2)-sin(2)*(x-2)-1/2*cos(2)*(x-2)^2+1/6*sin(2)*(x-2)^3+1/24*cos(2)*(x-2)^4

Пример:

Получить разложение в степенной ряд по степеням x «функции ошибок»

 

Erf(x) = dt,

которая не выражается в конечном виде через элементарные функции.

Решение:

> > syms x t

> > Pi=sym('pi');

> > taylor(2/sqrt(Pi)*int(exp(-t^2), t, 0, x))

ans =

2/pi^(1/2)*x-2/3/pi^(1/2)*x^3+1/5/pi^(1/2)*x^5

> > [m]=simple(ans)

m =

1/15*x*(30-10*x^2+3*x^4)/pi^(1/2)

> > pretty(m)

2 4

x (30 - 10 x + 3 x )

1/15 -------------------------

1/2

pi

Команда taylortool приводит к появлению окна приложения, изображенного на рис. 7.1.

 

 

Рис.7.1.

Пользователь может вводить формулы различных функций в строке f(x) =

и исследовать приближение функции на произвольном интервале отрезком ряда Тейлора, содержащим различное число членов разложения.


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 2204; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.052 с.)
Главная | Случайная страница | Обратная связь