Записи с меткой «данным»
Нули функций Бесселя — BesselZeros
Нули функций Бесселя — BesselZeros
В подпакете BesselZeros определены функции, дающие список аргументов функций Бесселя в их первых п нулевых точках: BesselJZeros [mu, n], Bessel-YZeros[mu,n], BesselJPrimeZeros[mu,n], BesselYPrimeZeros[mu,n] и др. Ввиду редкого использования функций этого класса ограничимся парой примеров их применения:
<<NumericalMath`BesselZeros`
BesselJZeros[0, 5]
{2.40483, 5.52008, 8.65373, 11.7915, 14.9309}
BesselJYJYZeros[2, 6/5, 3, WorkingPrecision -> 20]
{15.806622444176579073, 31.46556009153683, 47.1570167108650315}
Поиск корней уравнений с интерполяцией — InterpolateRoot
Подпакет InterpolateRoot дает средства для ускоренного и более точного поиска корней уравнений по сравнению с соответствующими функциями ядра. Достигается это за счет применения интерполяции функции, корни которой ищутся. Под-пакет задает функцию InterpolateRoot [f, {х, a, b} ], которая находит корень функции f в интервале х от а до b. Вместо функции f можно задавать уравнение eqn. Возможны опции AccuracyGoal->Automatic, Maxlterations->15, WorkingPrecision->$MachinePrecision и ShowProgress->False (указаны принятые по умолчанию значения).
Примеры применения данной функции (n — число итераций):
<<NumericalMath` InterpolateRoot`
n = 0; FindRoot[n++; Exp[x] == 2, {x, 0, 1},
WorkingPrecision -> 100, AccuracyGoal -> 95]
{x->
0.693147180559945309417232121458176568075500134360255 2541206800094933936219696947156058633269964186876}
n
17
n = 0; f[x_] := (n++; Exp[x]-2) /; NumberQ[x]
InterpolateRoot[f[x], {x, 0, 1), WorkingPrecision -> 100,
AccuracyGoal -> 95]; n 10
InterpolateRoot[Exp[x] ==2, {x, 0, 1},ShowProgress -> True,
WorkingPrecision -> 40]
{0, 0.58197670686932642439}
{21, 0, -0.12246396352039524100}
{1, 0.7019353037882764014443370764853594873432}
{21, 20, 0.0130121629575404389120930392554}
{3,0.6932065772065263165289985793736618546663}
{21, 20, 0.000062480788747713548804773113708}
{6, 0.6931471932603933841618726058237307884661}
{21, 20, 1.26443483693584888038460396742xHT8}
{12, 0.693147180559945119457822446
95590259222308309027205042483074}
{40, 20, -1.89953767048152086910014102216x 10-16}
{24, 0.6931471805599453094172321214
Работа с простыми числами-PrimeQ
Работа с простыми числами-PrimeQ
В подпакете PrimeQ в дополнение к функции ядра PrimeQ [n] имеется ряд функций для работы с простыми числами:
- ProvablePrimeQ [n] — возвращает True, если п проверено на простоту, и False в ином случае;
- PrimeQCertif icate [n] — возвращает сертификат о том, что n— простое или композитное число;
- ProvablePrimeQ [n, Certif icate->True] — возвращает сертификат, который может использоваться для проверки чисел на простоту;
- PrimeQCertif icateCheck [check, n] — проверяет, удостоверяет ли сертификат check простоту или композитность п.
Следующие примеры показывают работу с простыми числами:
<<NumberTheory` PrimeQ`
PrimeQ[127]
True
ProvablePrimeQ[127]
True
PrimeQCertificate[127]
{127, 3, {2, {3, 2, {2}.}, {7, 3, {2, {3, 2, {2}}}}}}
ProvablePrimeQ[127, Certificate->True]
(True, {127, 3, {2, {3, 2, {2}}, {7, 3, {2, {3, 2, {2}}}}}}}
PrimeQCertificate[3511, SmallPrime -> 1000]
{{CertificatePrime -> 3511,
CertificatePoint->PointEC[2, 2467, 1447, 2135, 3511], Certif icateK-> 32, Certif icateM -> 3424,
CertificateNextPrime -*107, CertificateDiscriminant -> -7},
107, 2, {2, {53, 2, {2, {13, 2, {2, {3, 2, {2}}}}}}}}
Вычисление примитивных элементов — Primitive Element
Подпакет PrimitiveElement содержит всего одну функцию для вычисления примитивных элементов множественного алгебраического выражения:
- PrimitiveElement [z, {а1„а2,…} ] — возвращает список {b, { f1, f2,…}}, где b — примитивный элемент расширения рациональных алгебраических чисел al, а2,… и f1, f 2,… — полином переменной z, представляющей al, a2, … как термы примитивного элемента.
Ее действие видно из следующего примера:
<<NumberTheory`PrimitiveElement`
PrimitiveElement[z, {Sqrt[2], Sqrt[3]}]
RootReduce[%[[2]] /. z -> %[[1]]]
Создание рядов Рамануджанат-Дирихле — Ramanujan
В подпакете Ramanujan определены следующие функции:
- RamanujanTau [n] — n-й коэффициент ряда Рамануджана т-Дирйхле (т n );
- RamanujanTauGeneratingFunction [z] — производящая функция ряда Рамануджана т-Дирихле;
- RamanujanTauDirichletSeries [s] — ряд Рамануджана т-Дирихле f(s);
- RamanujanTauTheta [t] — функция Рамануджана т-Дирихле o(t)
- RamanujanTauZ [t] — функция Рамануджана т-Дирихле z(t).
Это довольно редкие функции, представляющие интерес для специалистов в теории чисел. Достаточно подробные их определения даны в справочной базе данных. Ограничимся приведением примеров их использования:
<<NumberTheory`Ramanujan`
RamanujanTau[5]
4830
Sum[RamanujanTau[n] z^n, {n, 5}]
z — 24 z2 + 252 z3 — 1472 z4 + 4830 z5
RamanujanTauGeneratingFunction[. 1]
0.00610209
RamanuJanTauGeneratingFunction[.99]
4.10287803703 x -1673
RamanujanTauDirichletSeries[6 + 9.221]
0.00040309-0.002390131
z = RamanujanTauZ[9.22]
0.00242388
theta = RamanujanTauTheta[9.22]
1.40372043366323 z Exp[-I theta]
0.00040309 — 0.00239013 I
Рационализация чисел — Rationalize
Подпакет Rationalize расширяет возможности представления чисел в рациональном виде. Он содержит определения следующих функций:
- ProjectiveRationalize [ {х0, xl,…, хn} ] — возвращает список целых чисел, дающих рациональные представления для чисел заданного списка;
- ProjectiveRationalize [ {х0, xl,…, хn} ,ргес] — возвращает список целых чисел, дающих рациональные представления с погрешностью не более 10- рreк
- Af f ineRationalize [ {х0, xl,…, хn} ] — возвращает список рациональных приближений для чисел заданного списка;
- Aff ineRationalize [ {х0, xl,…, xn} ,prec] — возвращает список рациональных приближений для чисел заданного списка, вычисленных с погрешностью не более 10- ргес .
Встроенная в ядро функция Rationalize дает рациональное представление для одиночных вещественных чисел. далее…
Векторный анализ — VectorAnalysis
Векторный анализ —VectorAnalysis
Подпакет VectorAnalysis содержит множество функций, используемых при выполнении векторного анализа. Здесь надо иметь в виду, что речь идет не о векторах как представителях одномерных массивов, которые рассматривались ранее. В данном случае вектор — это направленный отрезок прямой в пространстве, заданном той или иной системой координат.
Системы координат и их преобразования
Заметная часть функций подпакета VectorAnalysis относится к заданию и преобразованию координат:
- Coordinates [ ] — возвращает имена переменных текущей системы координат;
- Coordinates [coordsys] — возвращает имена переменных системы координат coordsys;
- SetCoordinates [coordsys] — устанавливает систему координат coordsys с текущими переменными;
- Coordinates [coordsys, {vars}] — устанавливает систему координат coordsys с переменными, заданными списком {vars }.
Ниже даны названия систем координат и соответствующие им представления.
Наименование |
Представление |
Прямоугольные |
Cartesian [х, у, z] |
Цилиндрические |
Cylindrical [r, theta, z] |
Сферические |
Spherical [r, theta, phi] |
Параболические цилиндрические |
ParabolicCylindrical [u, v, z] |
Параболические |
Paraboloidal [u, v, phi] |
Эллиптические цилиндрические |
EllipticCylindrical [u, v, z, a] |
Вытянутые сфероидальные |
ProlateSpheroidal [xi, eta, phi, a] |
Сплющенные сфероидальные |
OblateSpheroidal [xi, eta, phi, a] |
Биполярные |
Bipolar[u, v, z, a] |
Бисферические |
Bispherical [u, v, phi, a] |
Тороидальные |
Toroidal [u, v, phi, a] |
Конические |
Conical [lambda, mu, nu, a, b] |
Конфокальные эллипсоидальные |
ConfocalEllipsoidal [lambda, rnu, nu, a, b, c] |
Конфокальные параболические |
ConfocalParaboloidal [lambda, mu, nu, a, bj |
Например, параболическую систему координат можно задать следующим образом:
SetCoordinates[Paraboloidal[x, у, z] ]
Paraboloidal [x, у, z]
{CoordinateSystem, Coordinates[]}
{Paraboloidal, {x, y, z}}
Ряд функций служит для контроля и установки параметров систем координат:
- CoordinateRanges [ ] — возвращает пределы изменения переменных текущей координатной системы;
- Parameters [ ] — возвращает параметры текущей координатной системы;
- ParametersRanges [ ] — возвращает пределы изменения параметров текущей координатной системы;
- CoordinateRanges [coordsys] — возвращает пределы изменения переменных координатной системы coordsys;
- Parameters [coordsys] — возвращает параметры координатной системы coordsys;
- ParametersRanges [coordsys] — возвращает пределы изменения параметров координатной системы coordsys;
- SetCoordinates [coordsys, {vars,param} ] — устанавливает параметры текущей координатной системы как параметры coordsys с переменными vars и параметрами param.
Ниже представлены примеры применения этих функций:
CoordinateRanges[]
{0<Х<бесконечности,0<Y<бесконечность,-л<Z<=л}
Parameters[]
{}
ParameterRanges[ ]
Coordinates[Conical], CoordinateRanges[Conical]
{{Llanibda, Мmu, Nnu}, {-бесконечность< Llambda< бесконечность, l< Mmu2 < 4, Nnu2< 1}}
Parameters[Bipolar],ParameterRanges[Bipolar]
{{1}, 0< #1<бесконечность}
Для преобразования координат служат следующие функции:
- CoordinatesToCartesian [pt] — преобразование текущих координат в декартовы;
- CoordinatesToCartesian [pt, coordsys] — преобразование координат coordsys в декартовы;
- CoordinatesFromCartesian [pt] — преобразование из декартовых координат в текущие;
- CoordinatesFromCartesian [pt, coordsys] — преобразование из декартовых координат в координаты coordsys.
Эти примеры демонстрируют преобразования координат:
CoordinatesToCartesian[{I, Pi/3, Pi/3}, Spherical]
CoordinatesToCartesian [u, v, phi}, Bipolar]
CoordinatesFromCartesian [ {x, y, z} , Bipolar]
Структура систем Mathematica и их идеология
Структура систем Mathematica и их идеология
Структура систем Mathematica
Следует отметить, что скромные (в смысле аппаратных требований) версии системы Mathematica 2.2.2 по сей день производятся фирмой Wolfram и используются в основном в системе образования. Они продаются по ценам в несколько раз меньшим, чем последующие реализации 3 и 4. Сейчас версии системы для IBM-совместимых ПК Mathematica 2, 3 и 4 распространяются в России на оптических дисках. Это намного повышает их доступность, хотя нередки случаи поставки не вполне работоспособных систем на дисках сомнительного происхождения.
Общая структура систем Mathematica (всех версий) представлена.
Центральное место в системах класса Mathematica занимает машинно-независимое ядро математических операций — Kernel. Для ориентации системы на конкретную машинную платформу служит программный интерфейсный процессор Front End. Именно он определяет, какой вид имеет пользовательский интерфейс системы. В этой главе далее будет описан интерфейсный процессор для ПК с массовыми операционными системами Windows 95/98/NT. Разумеется, интерфейсные процессоры систем Mathematica для других платформ могут иметь свои нюансы, но особых различий с описанным интерфейсным процессором у них нет.
Любопытны данные об объеме ядра разных реализаций системы Mathematica, приведенные в книге Стивена Вольфрама:
Система |
Mathematica 1 |
Mathematica 2 |
Mathematica 3 |
Mathematica 8 |
Число строк на языке С |
150 000 |
350 000 |
600 000 |
800 000 |
Увеличение объема ядра в системе Mathematica 8 позволило перенести в ядро ряд функций из пакетов расширения. Ядро системы тщательно оптимизировано, что повысило скорость выполнения большинства команд.
Ядро сделано достаточно компактным с тем, чтобы любая функция из него вызывалась достаточно быстро. Для расширения набора функций служит библиотека (Library) и набор пакетов расширения (Add-on Packages). Пакеты расширений готовятся на собственном языке программирования систем Mathematica и являются главным средством расширения возможностей системы и их адаптации к решению конкретных классов задач пользователя. Кроме того, системы имеют встроенную электронную справочную систему — Help. далее…
Система Mathematica 7
Система Mathematica 3
У разных фирм различны подходы к обозначению новых версий своих программных продуктов. MathSoft, Inc., к примеру, за какие-то пять лет породила добрый десяток новых версий популярной системы Mathcad — 3.0, 4.0, 5.0, Plus 5.0, 6.0, Plus 6.0, 7.0, Plus 7.0, 8.0, 8.0 PRO и даже Mathcad 2000 PRO/Premium. И почти каждый раз отмечала их новой цифрой, хотя революционными отличия этих версий друг от друга назвать трудно.
Фирма Wolfram Research, Inc. (разработчик систем Mathematica) явно относится к числу тех фирм, у которых малейший намек на изменение версии означает существенную ее переработку. В итоге версии Mathematica 3 и 4 на фоне более старых Mathematica 2.0, 2.1 и 2.2 выглядят кардинально новыми системами с новым превосходным пользовательским интерфейсом и обширными математическими возможностями.
В июле 1996 г. на бета-тестирование поступила система Mathematica 3. Вскоре (середина 1997 г.) она стала серийным продуктом, начались ее поставки на рынок. Был кардинально переработан пользовательский интерфейс системы, он вобрал в себя массу новинок — от раздельного вывода на экран деталей и панелей интерфейса до мощной и прекрасно реализованной справочной системы. Устранен недостаток предшествующих версий — небольшое число примеров в справочной системе. Все примеры стали «живыми» — их в любой момент можно переиначить на свой лад и перенести в свои документы.
Продолжая линию развития универсального ядра системы, фирма Wolfram обеспечила применение этой системы на целом ряде операционных систем — Windows 95, Windows NT, Macintosh, Power Macintosh, SunOS, Solaris, HP-UX, SGI, Linux и др. Это делает систему доступной самым различным категориям пользователей и позволяет распределять решение математических задач любой сложности по оптимальным для этого компьютерным платформам.
Для системы Mathematica 3 на массовой платформе Windows установлены следующие требования к аппаратной части:
- процессор Intel 80386 и выше;
- операционная система Windows 95 или Windows NT 3.51 и старше;
- дисковое пространство — минимальное 24 Мбайт, стандартное 83 Мбайт и максимальное около 120 Мбайт;
- запуск с жесткого диска или с CD-ROM;
- емкость ОЗУ — минимальная 8 Мбайт, желательная 16 Мбайт.
Система поставляется на CD-ROM в комплекте с электронным учебником и документацией. Возможен запуск системы прямо с компакт-диска, что экономит пространство на жестком диске, но замедляет файловые операции. Любопытно отметить, что большую часть памяти на дисках (жестком и CD-ROM) занимает справочная база данных системы.
Из других возможностей системы Mathematica 3 можно отметить:
- повышение эффективности численных методов, в частности, функций одномерной и многомерной интерполяции, решения дифференциальных уравнений, решения систем линейных уравнений и др.;
- введение адаптивного контроля за вычислениями численными методами;
- расширенный диапазон аналитических преобразований, в том числе для уравнений с частными производными;
- введение новой функции полного упрощения Full Simplify, способной упрощать выражения со специальными математическими функциями;
- расширение числа форматов файлов, в которых можно сохранять документы (в их числе популярные форматы файлов EPS, TIFF, GIF, HPML и др.);
- повышенное (полиграфическое) качество документов; О улучшенное использование памяти ОЗУ.
Благодаря этим и другим описанным выше возможностям сферы применения системы Mathematica 3 заметно расширились. Было создано свыше двух десятков профессиональных пакетов расширения системы.