Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Как в 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; Нарушение авторского права страницы