Раздел: Документация
0 ... 123 124 125 126 127 128 129 ... 177 6 :=асо8 V Vх + У + Уже известны все велнчивы для того, чтобы можно было найти частные производные и{р, 9, ф) по x. У, е ux:= и •= иу. а — и ( и := 3 — и \(. \ Up р V.3x ) V Эу J Lu s — и эх ; Чз 1 Uy ; K8z J — и ч,эф ; ve* ; lap ; у Теперь данные выражения нужно аналитически вычислить. При этом необходимо учесть, что в выданные в качестве ответа выражения могут входить как сферические координаты, так и декартовы. Последние нужно заменить, используя заданные выше выражения перехода. Пх:=их substitute ,х = Х,у = Y,z = Z assume,р £ 0,O = RealRange(0, я) simplify p(l - соз(ф)г + 2-5т(в)2-соз(ф)2 + соа(ф)2со5(8)2) и := и У У substitute ,x = X,y = Y,z=Z assume,р > 0,0 = RealRange(O.Ti) -» simplify С08(ф)-8т(ф)-р(-1 + г-втСе)2 + cos(e)2) substitute, x = X,y = Y, z=Z assume, p г 0,9 = RealRange(0, л) H simplify -1 + 2sin(8)2 + cos (б)2 sin(e) и "= и z z -» р-СО5(ф)-С05 Чтобы максимально упростить результат аналитического расчета, следует задействовать оператор simplify. Однако по умолчанию при этом в ответы войдут функции знака выражения — csgn (знак комплексного выражения) и signum (знак действительного выражения). Это происходит из-за того, что в ряде алгебраических преобразований знак должен учитываться. Чтобы убрать данные функции, символьному процессору нужно показать, в каких пределах изменяются переменные. Сделать это можно с помощью оператора assume. Анализ выражений ответа показывает, что в качестве аргументов функций знаков выступают р и sin(8)- Однако р может быть только болшс или равна 0 (см. уравнение, связывающее р и декартовы координаты)- Тй же присуще и aiii(B), так как азимутальный у!ш в случае использованной формы задания сферической системы координат нзмештется от 0 до п. Испочьзун оне]К1Т0ры неравенства и модификатор Real Range, чгообшасм» .эти данные аналитическому процессору. При этом функции знака исчезиут. В той форме, в которой мы получили частные производные функции и{р, в, ф) по х, у, ?., они также являются сложными функциями. Чтобы нычнелнть частные производные второго порядка, дифференцируем их, используя уже хорошо знакомые формулы: 0ф dx d d , — Р dx dx dp dp d , d7 de 1» dz Чтобы найти лапласиан, аналитически вычисляем сумму частных производных иторого порядка. Так как в выражение ответа могут входить декартовы координаты, их нужно заменить соответствующими им выражениями в сферической системе. Чтибы исключить из итветл фикции знака, но-кааыааем символьному процессору области изменения г и q. substitute ,х = Х,у = ¥,z = 2 simPI,fV->4-сМ(ф).8щ(о) assume,р 2: 0,9 = RealRange(o,я) simplify Обратите внимание, что при расчете последнего выражения оператор simplify был задействован дважды. Это довольно эффективный ход — проводить упрощение не одни раз, а после каждой операции - поэтому его нужно запомнить. Полученный результат весьма компактен. Однако верен ли он? Чтобы проверить это, воспользуемся готовым выражением оператора Лапласа и сферической системе координат u"x+uy + u"z 1 з Ди :=--- р2 эр р —и 1 2 р -sin (в) 36 sin(e>£-u 39 I 2 р вт (е)2 *Ф Ди simplify 4СОз(ф)31п(б) Ответы сошлись Следовательно, задача была решена верни. 11.3. Численные методы дифференцирования В отличие от численного решения уравнений, о кагор*>м мы говорили в гл. 8, алгоритм численного дифференцирования, в общем-то, совсем несложно построить и сшеетоятельно. Для этого достаточно вспомнить знакомую со школы формулу оггределення производной: ох : lim h -» О ftx + h) - tth) Очевидно, что, выбрав точку, производная в которой должна быть вычислена, И определившись с величиной приращения, по данной формуле вполне можно вести расчет. Столь же очевидно, что чем меньше величина h, тем точнее будет приближение про-изводиоЙ. Впрочем, последнее утверждение не лишним будет и проверить. Для этого построим таблицу влияния размера шага на точность вычисления производной (табл. 11.1). Для того же, чтобы можно было контрол и ропать величину ошибки, будем дифференцировать функцию в точке, значение производной в которой хорошо известно. Выберем для этого, например, синус в точке л. Точная величина производной для этого случая хорошо известна: -1, LXa.h) := fix) := sin(x) Ца + b) - Да) Таблица 11.1. Влияние величины приращения на точность численного дифференцирования
Анализ полученной таблицы дает довольно неожиданные результаты; оказывается, точность численного дифференцирования совершенно не обязательно тем выше, чем меньше выбранное приращение. При шаге 10~и ошибка более чем в 100 раз выше, чем при максимальном приращении Ю-1, Максимум же точности получается при шаге величиной 10 i. В чем же причина такой странной зависимости точности от приращения? Действительно, в идеальном случае, чем меньше приращение h, тем точнее приближается производная. Однако при использовании компьютера возникает проблема, связанная с тем, что величины и функции вычисляются не абсолютно точно, а существует некоторая расчетная ошибка. Чем меньшее значение принимает функция, тем сильнее сказывается на относительной точности погрешность численных расчетов при малых h разность f(x+h)-f(x) столь невелика, что значение производной будет зависеть от округления весьма заметно. При h, близких но порядкам к точности округления системы, значение производной будет определяться, прежде всего, именно тем. что относительная ошибка При вычислении разности f(x+h)-f(x) сопоставима с самой разностью. Из-за этого и возникает такая на первый взгляд парадоксальная ситуация 0 ... 123 124 125 126 127 128 129 ... 177
|