Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 92
Текст из файла (страница 92)
Ввести их можно либо с панели Calculus, либо сочетаниями клавиш (Shift+4 — для суммы и Shift+З — для произведения):При использовании данных операторов в первую очередь нужно задать ранжированную переменную, которая покажет, какие значения должна принимать переменнаяцикла или произведения. Определив ранжированную переменную, ее имя нужно ввести в нижний маркер оператора. При этом будут просуммированы или перемножены всеэлементы последовательности, соответствующие заданным значениям ранжированнойпеременной. Если ранжированная переменная принимает только целочисленные значения, такое суммирование или умножение не имеет никаких отличий от использования простых операторов ряда.
Дополнительные возможности ранжированного суммирования или произведения проявляются тогда, когда переменная должна изменятьсяне с целым шагом. Но взаимозаменимы операторы суммирования и произведенийвсегда.Операторы ранжированной суммы или произведения обычно используются тогда, когда необходимо произвести обработку матрицы или вектора.
В качестве примера покажем, как с их помощью можно вычислить три вида среднего: арифметическое, геометрическое и среднеквадратичное.Пример 12,7. Вычисление различных средних для выборкиdata:=(l 2 3 4 5 6 7 8 9 1 0 )ТNN:= length(data)i:=0.. N N - 1Ш^data. = 5.5'=6.205NN4 0 6 •:• Глава 12. Ряды и пределыРанжированные суммы и произведения можно вычислять и аналитически.
Причемпри этом не обязательно задавать ранжированную переменную. Если в оператор ранжированной суммы или произведения в качестве переменной ввести неопределеннуювеличину к, то ответ будет рассчитан из условия изменения переменной от 0 (или 1,если возникает ошибка деления на 0) до к с шагом 1.Пример 12.8. Использования операторов ранжированной суммыи произведения в аналитических вычисленияхk-(k-l)Пк(к-1)к—>(k-1)11Г(к)-Г(к-1)Г(к)У- -» Psi(k)^ ккУстановить однозначное соответствие между результатами символьных вычисленийс помощью ранжированных и обычных операторов суммирования и произведения зачастую бывает не столь просто. Например, после суммирования к элементов гармонического ряда в примере 12.8 был получен результат в виде функции Psi(k).
Функцияэта имеет видPsi(x) = —1п(г(х))dxи сама по себе лишь повторяет поведение ломаной гармонического ряда, абсолютно не совпадая с ней:ceil(x)*-* kk =lf(x):=Psi(x)-5-1Чтобы через функцию Psi точно выразить сумму гармонического ряда, к этой функцииследует прибавить специальную величину — так называемую константу Эйлера у, приблизительно равную 0.57722.
Также нужно учесть, что функция Psi «отстает» от функции суммы ряда на единицу.12.5. Разложение функций в ряды Тейлора * 4 0 7у := 0.57722f(x) :=Psi(x + I) + уТаким образом, результат ранжированного суммирования членов гармонического рядабыл получен не совсем корректный. Однако выражение для суммы гармонического рядав случае использования оператора простого суммирования будет определено верно:% \Psi(k + 1) + уСделаем вывод: использование операторов ранжированного суммирования и умножения в случае аналитических расчетов имеет ряд особенностей и может привести к неожиданному или даже неверному результату. Поэтому по возможности (а возможностьтакая есть всегда) используйте все-таки стандартные операторы ряда.12.5. Разложение функций в ряды ТейлораС помощью символьного процессора Mathcad можно выполнить и такую важную с практической точки зрения операцию математического анализа, как разложение функциив ряд Тейлора.
Для этого следует воспользоваться оператором series (Ряд) панелиSymbolic (Символьные):i series ,1,1 ->Данный оператор содержит три маркера. В первый вводится функция или ее имя.Во второй — переменная, по которой должно быть проведено разложение. В третий —количество членов ряда (что соответствует порядку точности).По умолчанию разложение производится в окрестности 0 (то есть вычисляется такназываемый ряд Маклорена). Если же ряд нужно найти для окрестности другой точки, то следует переменной во втором маркере оператора series присвоить с помощьюлогического равенства (Ctrl+=) нужное значение (оно может быть как численным, таки символьным).Зачастую приходится аппроксимировать рядами функции нескольких переменных.В Mathcad найти такой ряд можно, введя в оператор series не одну переменную, а две(или любое количество). Сделать это можно, просто введя после второго маркера запятую.
При этом появится еще один маркер, в котором можно задать имя второй переменной.Используя оператор series, можно произвести разложение в ряд длиной до 100 членов.4 0 8 •:• Глава 12. Ряды и пределыПример 12.9. Вычисление рядов Тейлора различных типовРазложение функции в ряд Маклорена:ln(x+ sin(x)) series,х,7 -» ln(2) + 1п(х)х +х +х12144018144Разложение функции в ряд Тейлора в окрестности точки х=а:11 -1 ,.1 ,-1 ,Ч2Ч3- senes,x = a,5 -» - + — ( х - а ) н(х-а) + — ( х - а )ха234аааРазложение в ряд Тейлора функции двух переменных:\__1_пя1 21Л (\'\1sin(x+ у) s e n e s , x = - , у = — ,2 -> --22 •хп\4222V4/21 ,А+—(х-а)5а_1_Л(2 -у1Д.1пОбратите внимание на то, что ответ при использовании оператора series выводится безостаточного члена О(я").
Это сделано для того, чтобы результат вычислений можнобыло без проблем использовать в дальнейших расчетах. Если же формула должна бытьабсолютно верной, то разложение нужно осуществить не посредством оператора series,а командой Expand to Series (Разложить в ряд) подменю Variable (Переменная) менюSymbolics (Символьные). При этом остаточный член будет включен в ответ. Например,при разложении f(x)=sin(x) в ряд Маклорена из пяти членов получим следующий результат:6Mathcad не умеет находить формулы общих членов рядов Тейлора.
При необходимости эту работу придется производить самостоятельно, анализируя и сопоставляя несколько первых членов разложения. Или же, в крайнем случае, можно воспользоваться справочником.В математике ряды используются прежде всего для численных расчетов, и, в частности, для аппроксимации функции в окрестности точки, в которой известно ее точноеаналитическое значение. В следующем примере рассматривается влияние порядка разложения на точность приближения функции.
Обратите также внимание на то, скольсильно влияет на результат правильность выбора точки разложения.Пример 12.10. Используя разложение в ряд Тейлора, найти значениефункции f(x)=sin(x) вточкех=1 с точностью до 10~10Чтобы получить максимальную точность при минимальном количестве членов в ряду, мы должны произвести разложение в окрестности точки, для которой характерно, с одной стороны, то,что для синуса в ней известно аналитическое значение, а, с другой, то, что она находится близкок точке х=1.
Наилучшим образом этим условиям удовлетворяет точка х=я/3.С точкой разложения мы определились. Но сколько членов должно быть в ряду, чтобы была достигнута желаемая точность? Очевидно, что необходимое количество членов разложения зависит от близости точки, в которой должно быть вычислено значение функции, к точке разложения.Чем они будут дальше друг от друга, тем больше членов придется рассчитать. Также, несомненно,влияние оказывают и особенности поведения функции в окрестности точки разложения.
В об-12.5. Разложение функций в ряды Тейлора • 4 0 9щем, определение необходимого количества членов разложения — это довольно нетривиальнаязадача. К счастью, имеются удобные формулы, которые позволяют оценить порядок остаточногочлена разложения (погрешность будет определяться именно этой величиной). Широко известны формулы для остаточного члена в форме Лагранжа, Коши, Пеано. Менее известна формулаостаточного члена в интегральной форме.
В рамках нашей задачи наиболее удобна именно она:Здесь п — количество членов разложения, f(n+1>(t) — производная порядка п+1 разлагаемой функции, t — переменная подынтегральной функции (она исчезает после проведения интегрирования), а — точка разложения (в нашем случае я/3), х — точка, в которой вычисляется значениефункции (в нашем случае 1).10Нам нужно найти минимальное п, при котором остаточный член по модулю окажется меньше 10~ .Увы, но если написать на основании формулы для Rn(x) уравнение относительно п, то его не удастся решить ни аналитически (оно будет слишком сложным), ни численно (R n (x) не является непрерывной функцией от п). Не получится решить его и графически, так как порядок величинслишком мал (не поможет даже использование логарифмической шкалы).
Так что остается одно:подобрать п вручную. Для этого представим формулу для остаточного члена в виде функцииот п и х:-хdn+1R(n,x):=-п!dtПодбираем п для точки х=1. Расчет значения функции R(n,x) необходимо выполнить аналитически, а затем пересчитать результат в десятичную дробь.
Почему? Во-первых, при этом будетдостигаться куда большая точность, чем при численном расчете. Во-вторых, это позволит работать с очень малыми величинами (при численном расчете они будут округляться до 0). В-третьих, главное, в выражение R(n,x) входит производная порядка п+1. А так как численно можно рассчитать производную лишь до пятого порядка, то численно значение R(n,x) можно найти лишьпри п<5.11R ( 5 , l ) float,40 -» -1.32435289842492418209678024020-Ю""Итак, мы должны разложить синус в ряд из шести-семи членов (не пяти, так как нужно учестьи погрешность при проведении арифметических расчетов):f(x) :=sin(x) series,| х = — |,61 ,21(-•3 + — х2211-1я + —33 )4XТС112^3 )48XНаходим значение синуса в точке х=1, отвечая по вопрос задачи:f(l) = 0.84147098487t240XК3410•Глава 12. Ряды и пределыПроверяем верность ответа с помощью встроенной функции Mathcad sin:sin(l)= 0.8414709848Ответы сошлись.
Следовательно, задача была решена нами абсолютно верно.Особенностью рядов Тейлора является то, что они (при фиксированном количестве членов) темлучше приближают функцию, чем ближе точка располагается к точке разложения. Соответственно, чем дальше точка находится от точки разложения, тем больше членов ряда придется просуммировать, чтобы достичь нужной точности. В принципе, сколь угодно точное значение функцииможно найти в сколь угодно удаленной от точки разложения точке — но количество членов рядаТейлора, которые придется для этого просуммировать, может быть весьма значительным.
Продемонстрируем это на примере. Посмотрим, сколько нужно взять членов ряда, полученного разложением синуса в точке а=я/3, чтобы вычислить значение этой функции в точке х=2 с точнос10тью до К)" :R( 12,2) float ,40 ->3.0211056523608070839215675000495 • 10~ ПКак и следовало ожидать, с удалением от точки разложения длина аппроксимирующего ряда возросла. Посмотрим, будет ли результат точен до 10-го знака, если мы возьмем 13 членов разложения:sin(2) = 0.9092974268f(2) = 0.9092974268Возьмем еще более удаленную точку х=10:R(40,10) float,40 -> -2.931460350764340735769938368089913258176f(10) =-0.544021110910sin(10)= 0.5440211109Чтобы вычислить в этой точке синус с нужной точностью, придется просуммировать 41 член разложения! Представляете, как сложно было бы выполнить эту работу на бумаге? Делаем вывод:очень важно правильно выбрать точку разложения — это может уменьшить объем вычислительной работы на порядок.Заканчивая обсуждение данной задачи, приведем график функции, аппроксимирующей синус,которая представляет собой ряд из 41 члена (рис.