Функции Бесселя первого и второго рода обычно возникают как решения волнового уравнения с цилиндрическими граничными условиями.
Конкретный вид соответствующих дифференциальных уравнений можно без труда отыскать в справочниках по спецфункциям или в справочной системе Mathcad.
Рис. 10.1. Функции Бесселя первого рода
Рис. 10.2. Функции Бесселя второго рода
J0(z) — функция Бесселя первого рода нулевого порядка; J1(z) — функция Бесселя первого рода первого порядка; Jn(m, z) — функция Бесселя т-го порядка; Y0(z) — функция Бесселя второго рода нулевого порядка, х>0; Y1(z) — функция Бесселя второго рода первого порядка, х>0; Yn(m, z) — функция Бесселя второго рода m-го порядка, х>0;Внешний вид нескольких первых функций Бесселя первого и второго рода показан на рис. 10.1 и 10.2, соответственно.
Перечислим их:
I0(z) — модифицированная функция Бесселя первого рода нулевого порядка; I1(z) — модифицированная функция Бесселя первого рода первого порядка; In(m,z) — модифицированная функция Бесселя первого рода m-го порядка; K0(z) — модифицированная функция Бесселя второго рода нулевого порядка, х>0; K1(z) — модифицированная функция Бесселя второго рода первого порядка, х>0; Kn(m,z) — модифицированная функция Бесселя второго рода m-го порядка, х>0; z — действительный или комплексный безразмерный скаляр; m — порядок, целое число 0<m<100.Рис. 10.3. Модифицированные функции Бесселя первого рода
Примеры нескольких первых модифицированных функций Бесселя показаны на рис. 10.3 и 10.4.
Рис. 10.4. Модифицированные функции Бесселя второго рода
Функции Эйри являются независимыми решениями ОДУ y' '=zy. Их вид показан на рис. 10.5. Итак:
Ai (z) — функция Эйри первого рода; Bi (z) — функция Эйри второго рода; z — действительный или комплексный безразмерный скаляр, х<103.892.Рис. 10.5. Функции Эйри
Комплексная комбинация функций Бесселя-Кельвина вида ber(n,x) + i bei(n,x) является решением соответствующего ОДУ, зависящего от параметра n. Вид графиков функции bei для n=i и 2 показан на рис. 10.6.
bei (n,x) — мнимая часть функции Бесселя-Кельвина порядка n; ber(n,x) — действительная часть функции Бесселя-Кельвина порядка n; n — порядок (безразмерное неотрицательное целое число); х — действительный безразмерный скаляр.Рис. 10.6. Функции Бесселя-Кельвина
График сферических функций Бесселя первого порядка показан на рис. 10.7.
js(n, z) — сферическая функция Бесселя первого рода порядка n, х>0; ys (n, z) — сферическая функция Бесселя второго рода порядка n, х>0; n — порядок (целое число), n>200; z — действительный или комплексный безразмерный скаляр, х>0.В Mathcad имеется несколько функций, облегчающих работу с комплексными числами.
Re(z) — действительная часть комплексного числа z; im(z) — мнимая часть комплексного числа z;Рис. 10.7. Сферические функции Бесселя первого порядка
arg(z) — аргумент комплексного числа z, --pi<arg(z)<pi; csgn(z) — функция комплексного знака числа (возвращает либо 0, если z=0; либо 1, если Re(z)>0, или если Re(z)=o и im(z)>0; либо -1 — в остальных случаях); signum(z) — возвращает 1, если z=0, и z/|z| — в остальных случаях; z — действительное, мнимое или комплексное число.Комплексное число можно ввести как обычно, в виде суммы действительной и мнимой частей, либо как результат любого комплексного выражения. Несколько примеров действия функций работы с комплексными числами приведены в листингах 10.1—10.3.
Листинг 10.1. Базовые функции работы с комплексными числами
Листинг 10.2. Пример действия функции csgn
Листинг 10.3. Пример действия функции signum
Перечислим без комментариев хорошо известные логарифмические функции (рис. 10.8) и экспоненциальную функцию:
exp(z) — значение е (основание натурального логарифма) в степени z; ln (z) — натуральный логарифм; log(z) — десятичный логарифм; log(z,b) — логарифм z по основанию b. lnGamma(z) — логарифм гамма-функции Эйлера (см. разд 10.6);Рис. 10.8. Логарифмические функции
Аргумент тригонометрических функций и результат обратных тригонометрических функций выражаются в радианах. Чтобы использовать значение угла в градусах, его необходимо перевести в радианы (листинг 10.6). Аргумент тригонометрических функций может быть комплексным.
Листинг 10.4. Примеры тригонометрических функций
Листинг 10.5. Примеры расчета угла между прямой и осью OX
Листинг 10.6. Расчет тригонометрических функций в градусах
Гиперболические функции, согласно определению, выражаются через различные комбинации ez и е~г (пример приведен в листинге 10.7). Аргумент гиперболических функций также может быть комплексным. Графики трех основных гиперболических функций показаны на рис. 10.9.
Рис. 10.9. Основные гиперболические функции
acosh(z) — гиперболический арккосинус; acoth(z) — гиперболический котангенс; asinh(z) — гиперболический арксинус; acsch(z) — гиперболический арккосеканс; atanh(z) — обратный гиперболический тангенс; asech(z) — обратный гиперболический секанс; cosh(z) —гиперболический косинус; coth(z) — гиперболический котангенс; sinh(z) — гиперболический синус; csch(z) — гиперболический косеканс; tanh(z) — гиперболический тангенс; sech(z) —гиперболический секанс; z — безразмерный скаляр.Листинг 10.7. Пример гиперболических функций
Приведем перечень остальных спецфункций, которые рассчитываются Mathcad встроенным образом. Действие некоторых функций иллюстрируется листингом 10.8, а некоторые полиномы — графиками на рис. 10.11—10.13.
erf (z) — функция ошибок (см. разд. "Нормальное (Гауссово) распределение" гл. 14) erfc(z)=1-erf(z); z — скаляр. fhyper(а,b,с,х) —Гауссова гипергеометрическая функция; mhyper(a,b,x) — конфлюэнтная гипергеометрическая функция; а, b, с — параметры; х — действительный скаляр, -1<х<1. Gamma (z) — гамма-функция Эйлера; z — скаляр, |z|<1. Gamma (а, х) — неполная гамма-функция порядка а; х — действительный положительный скаляр.Гамма-функция в документе Mathcad отображается греческой буквой Г (листинг 10.8).
нег(n,х) — полином Эрмита порядка n с аргументом х (рис. 10.10); n — порядок (неотрицательное целое число); х — скаляр.Рис. 10.10. Полиномы Эрмита
ibeta(a,x,y) — неполная бета-функция для х и у с параметром а; а — действительный скаляр, 0<a<i; х,у — действительные скаляры, х>0, у>0. Jac (n, а, b, х) — полином Якоби степени n в точке х с параметрами а и b; Lag(n,x) — полином Лагерра степени n в точке х (рис. 10.11);Рис. 10.11. Полиномы Лаггера
Leg(n,x) — полином Лежандра степени п в точке х (рис. 10.12); n — порядок (неотрицательное целое число); х - действительный скаляр; а,b — действительные скаляры, а>-1, b>-1. Tcheb(n,x) — полином Чебышева первого рода степени n в точке х (рис. 10.13); Ucheb(n,x) — полином Чебышева второго рода степени n в точке х (рис. 10.13); n — порядок (неотрицательное целое число); х — действительный скаляр.Листинг 10.8. Примеры вычисления некоторых спецфункций
Рис. 10.12. Полиномы Лежандра
Рис. 10.13. Полиномы Чебышева
Приведем перечень функций, благодаря которым пользователь может оперировать со строковыми переменными, подобно операциям с числами:
concat(s1,s2,...) — строковая переменная, полученная объединением строковых переменных или констант s1, S2,... (листинг 10.9); error (S) — возвращает строку s как сообщение об ошибке (рис. 10.14); lsString(x) — возвращает 1, если х строковая переменная, и 0 — в остальных случаях (листинг 10.10); num2str(z) — возвращает строку, чьи знаки соответствуют десятичному значению числа z (листинг 10.10);Функция num2str(z) используется, когда проще манипулировать с числом как со строкой, нежели как с математической переменной.
search(s,Subs,m) — стартовая позиция подстроки subs в строке s при поиске, начиная с позиции m, при неуспешном поиске возвращает -1 (листинг 10.9); str2num(s) — преобразование строкового представления числа s (в любой форме) в число (листинг 10.10); str2vec(s) — преобразование в вектор ASCII-кодов строки s (листинг 10.10); strlen(s) — количество знаков в строке s (листинги 10.9, 10.10); substr <s,m,n) — подстрока, полученная из строки s выделением n знаков, начиная с позиции m в строке s (листинг 10.9); vec2str(v) — строковое представление элементов вектора v ASCII-кодов; s — строка; v — вектор ASCII-кодов (целых чисел, 0<v<255).Листинг 10.9. Примеры использования строковых функций
Листинг 10.10. Функции взаимных преобразований чисел и строк
Рис. 10.14. Использование функции создания сообщения об ошибке
Начиная с версии Mathcad 11 функции округления и сокращения чисел поддерживают также и комплексные аргументы (последние строки листингов 10.11 и 10.12)
Листинг 10.11. Функции сокращения и округления
Листинг 10.12. Округление чисел
При округлении не забывайте о принципах представления чисел в Mathcad. Чтобы отобразить нужное количество знаков после десятичной точки, воспользуйтесь диалогом Result Format (Формат результата) (см. гл. 4).
В документах символ Кронекера обозначается греческой буквлэи б, а функция Хевисайда — буквой Ф.
Листинг 10.13. Функции уловия и знака
Рис. 10.15. Функции Кронекера и Хевисайда
В Mathcad 2001 появилось семейство новых функций, позволяющих перейти от одних координат к другим, как на плоскости, так и в пространстве:
xy2pol (х,у) — преобразование прямоугольных координат в полярные; роl2ху(r,0) —преобразование полярных координат в прямоугольные; angle (х, у) — угол между точкой (х,у) и осью ох (см. разд. 10.4); atan2(x,y) — угол, отсчитываемый от оси ох до точки (х,у) (см. разд. 10.4); xyz2cyl(x,y,z) — преобразование прямоугольных координат в цилиндрические; cyl2xyz (r,0,z) — преобразование цилиндрических координат в прямоугольные; xyz2sph(x,y,z) — преобразование прямоугольных координат в сферические; sph2xyz(r,0,ф) — преобразование сферических координат в прямоугольные; х,у — прямоугольные координаты на плоскости; х,у,z — прямоугольные координаты в пространстве; r,0 — полярные координаты на плоскости; r,0,z — цилиндрические координаты; r,0,ф — сферические координаты.Несколько примеров преобразования координат приведены в листингах 10.14 и 10.15. Обратите внимание на возможность ввода аргументов этих функций как в виде списка, так и в виде вектора.
Листинг 10.14. Функции преобразования координат на плоскости
Листинг 10.15. Функции преобразования координат в пространстве
Начиная с версии 2000, в Mathcad появились функции, облегчающие финансовый анализ. приведем список этих функций, не вдаваясь в пояснения и надеясь на то, что заинтересованнvй читатель найдет подробное описание и практические примерv их применения в справочной системе Mathcad.
cnper (rate,pv, fv) — отвечает числу составнvх периодов, необходимvх для получения будущего значения вклада при заданнvх текущем значении вклада и проценте начислений; rate — фиксированнvй процент по вкладу; должен бvть действительнvм скаляром, rate>-i; pv — текущее значение вклада, pv>0; fv — будущее значение вклада, fv>0. crate (nper,pv, fv) — отвечает фиксированному проценту начислений по вкладу на период, необходимvй для прироста от текущего значения вклада до будущего значения при заданном числе составнvх периодов; nper — число составнvх периодов; должно бvть целvм числом, nper>1; pv — текущее значение вклада, pv>0; fv — будущее значение вклада, fv>0. cumint (rate, nper,pv, start, end, [type] ) — отвечает совокупному проценту по заему между начальнvм и конечнvм периодами при фиксированном проценте, общем числе составнvх периодов и текущем значении заема; cumprn (rate, nper,pv, start, end, [type]) — отвечает совокупной сумме по заему между начальнvм и конечнvм периодами при фиксированном проценте, общем числе составнvх периодов и текущем значении заема; rate — фиксированнvй процент по вкладу; должен бvть действительнvм скаляром, rate>0; nper — общее число составнvх периодов; должно бvть положительнvм целvм числом; pv — текущее значение заема, pv>0; start — начальнvй период накопления; должен бvть положительнvм целvм числом; end — конечнvй период накопления; должен бvть положительнvм целvм числом; starts end; type=0 для платежа, сделанного в конце периода, или 1 для платежа, сделанного в начале периода. eff (rate,nper) — отвечает эффективной ежегодной процентной ставке при данной номинальной ежегодной процентной ставке и числе составнvх периодов в год; rate — номинальная процентная ставка; должна бvть действительнvм скаляром; nper — общее число составнvх периодов в год, nper >0. fv(rate,nper,pmt, [ [pv], [type] ]) — соответствует будущему значениі вклада или заема через особое число составнvх периодов, установленнvх периодически, при постояннvх платежах и фиксированной процентной ставке; rate — фиксированная процентная ставка за период; должна бvть действительнvм скаляром, rate>0; nper — общее число составнvх периодов в год, nper >0; pv — текущее значение заема; type=0 для платежа, сделанного в конце периода, или 1 для платежа, сделанного в начале периода. fvadj (pnn,v) — соответствует будущему значениі ежегодной общей суммv капитала, на которvй начисляітся процентv, при применении серии составнvх процентнvх ставок; рrin — ежегодная общая сумма; v — вектор процентнvх ставок, каждая из которvх применяется с той же самой основной суммой и процентами с нее за период времени. fvc (rate, v) — соответствует будущему значениі серии денежнvх потоков, происходящих с регулярнvми интервалами, и приносящими специальнуі процентнуі ставку; rate — фиксированная процентная ставка за период; должна бvть действительнvм скаляром; v — вектор регулярнvх денежнvх потоков. ipmt (rate, per, nper,pv, [ [fv] , type] ])— соответствует іроцентному платежу по вкладу или заему за даннvй период, основанному на периодичности, постояннvх платежах через данное число составнvх периодов, используіщих фиксированнуі процентнуі ставку и особое текущее значение; rate — фиксированная процентная ставка за период, rate>0; per — период, за которvй Tv хотите найти ставку; должен бvть положительнvм целvм числом; nрег — общее число составнvх периодов, per< nper; pv - текущее значение; fv — будущее значение; type=0 для платежа, сделанного в конце периода, или i для для платежа, сделанного в начале периода. irr(v, [guess]) — отвечает внутренней ставке возврата для серии денежнvх потоков, происходящих с регулярнvми интервалами; v — вектор денежнvх потоков, определяемvх за регулярнvе интервалv, должен состоять по крайней мере из одного положительного и отрицательного числа; guess — численное значение, которvм Tv предполагаете аппроксимировать ответ, если им пренебрегается, то guess=0.1(10%). mirr (v, fm_rate, rem_rate) — соответствует модифицированной процентной ставке возврата для серии денежнvх потоков с регулярнvми интервалами при условии, что ставка финансирования подлежит оплате в соответствии с суммой заимствования, а ставка реинвестирования приносит доход с суммv, которуі Tv повторно инвестируете; v — вектор денежнvх потоков, определяемvх за регулярнvе интервалv; он должен состоять по крайней мере из одного положительного и отрицательного числа; fin_rate — финансовая ставка платежа по заимствованнvм денежнvм потокам; rem_rate — ставка реинвестирования. nom(rate,nper) — соответствует номинальной процентной ставке, вклічаіщей эффективнуі ежегоднуі процентнуі ставку и число составнvх периодов за год; rate — эффективная ежегодная процентная ставка; должна бvть действительнvм скаляром, rate>-1; nper — общее число составнvх периодов за год, nреr>0. npv(rate,v) — вvчисляет чистое текущее значение вклада, вклічаіщее скидки и регулярнvе денежнvе потоки; rate — фиксированная процентная ставка, с которой вклад зарабатvвает процент за период; должна бvть действительнvм скаляром; v — вектор регулярнvх денежнvх потоков. nper (rate,pmt,pv, [ [fv], [type] ]) — отвечает числу периодов для вклада или заема, основаннvх на периодичности, постояннvх платежах, используіщих фиксированнуі процентнуі ставку и особое текущее значение; pmt (rate,nper,pv, [ [fv], [type] ]) — соответствует платежу по вкладу или заему, основанному на периодичности, постояннvх платежах через данное число составнvх периодов, используіщих фиксированнуі процентнуі ставку и особое текущее значение; ppmt (rate,per,nper,pv, [ [fv], [type] ]) — соответствует платежу по общей сумме вклада или заема, основанному на периодичности, постояннvх платежах через данное число составнvх периодов, используіщих фиксированнуі процентнуі ставку и особое будущее значение; pv(rate,nper,pmt, [ [fv], [type] ]) — соответствует текущему значениі вклада или заема, основанному на периодичности, постояннvх платежах через данное число составнvх периодов, используіщих фиксированнуі процентнуі ставку и особvй взнос; rate(nper,pmt,pv, [ [fv] , [type] , [guess] ] ) — соответствует іроцентной ставке на период вклада или заема при особом числе периодических составнvх периодов, постояннvх платежах и особом текущем значении; rate — фиксированная процентная ставка; per — период; nper — общее число составнvх периодов за год; должно бvть положительнvм целvм числом; pmt — платеж, делаемvй каждvй период; pv — текущее значение вклада; fv — будущее значение вклада; type=0 для платежа, сделанного в конце периода, или i для платежа, сделанного в начале периода; guess — численное значение, которvм Tv предполагаете аппроксимировать ответ; если им пренебрегается, то guess=0.01(10%).