Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
применением | Учебники

Записи с меткой «применением»

Установка аргумента цвета — ArgColor

Установка аргумента цвета — ArgColor
 
При построении графиков в полярной системе координат полезно использовать цвет, зависящий от фазы комплексного числа. Для этого в подпакете ArgColor служат следующие функции:

  • ArgColor [z] — дает цвет, определяемый фазой комплексного аргумента z;
  • ArgShade [ z ] — дает уровень серого цвета, определяемый фазой комплексного аргумента z.

Действие функции ArgShade иллюстрирует показанный например. Он строит 12 расположенных по окружности кругов с разной степенью окраски (от белого до черного) с помощью функции ArgShade.
Заменив в этом программном модуле функцию ArgShade на ArgColor, вы сможете наблюдать окраску кругов разными цветами. далее…

Анимация графиков различного типа — Animation

Анимация графиков различного типа — Animation
Фактически, техника анимации (оживления) графиков уже была описана. Напомним, что она сводится к подготовке отдельных кадров анимационного рисунка, которые специфицируются особой изменяющейся переменной t. Это не обязательно время, возможно, что t задает размеры изображения, его положение или иную характеристику. Естественно, что имя переменной можно выбирать произвольно.
Подпакет Animation подключается автоматически и в ряде случаев не требует загрузки (хотя на всякий случай его лучше загрузить при использовании средств анимации). Пакет задает две важнейшие функции:

  • Animate [grcom, {t, tmin, tmax, dt] — задает построение серии графических объектов grcom при изменении параметра t от tmin до tmax с шагом dt;
  • ShowAnimation [ {p1,p2, р3,…} ] — дает анимацию последовательным воспроизведением ранее подготовленных объектов p1, р2, рЗ, …

Рисунок показывает пример подготовки к анимации простого графика — функции n*Sin [х] /х при n, меняющемся от 0.1 до 1 с шагом 0.1. Таким образом демонстрируется изменение данной функции по высоте (амплитуде).
При задании анимации есть небольшая проблема — Mathematica автоматически меняет масштаб с тем, чтобы график был наиболее представительным. Но для анимации это недопустимо, поэтому опцией PlotRange задан фиксированный масштаб для всех кадров анимации. Выполнив показанные на команды, можно наблюдать построение всех кадров — для n = 0.1,0.2,0.3,…, 1. 0. Первые три кадра анимации видны на снизу.
Теперь для наблюдения анимации достаточно двойным щелчком выделить первый рисунок. Будет видна быстрая смена кадров. далее…

Работа с пакетами расширений — Package

Работа с пакетами расширений — Package
В подпакете Package имеется несколько функций, полезных при работе с пакетами расширения:

  • FindPackages [path] — возвращает список файлов с расширением .m, имеющихся в каталоге path. Опция FullPath->True дает возврат полных (вместе с путем) имен файлов;
  • FindPackages [path, pattern] — возвращает список файлов с расширением .m, имеющихся в каталоге path и удовлетворяющих заданному образцу pattern;
  • Annotation [package] — возвращает список ключевых слов, содержащихся в аннотации пакета;
  • Annotation [package, keyword] — возвращает текст аннотации пакета, связанной с ключевым словом keyword.

Примеры работы с этими функциями:
  <<Utilities’ Package’
FindPackages[$Path, "*ca"]
{{}, {}, {}, {DiscreteMath’Combinatorica’}, {}}
FindPackages[$Path, "*ca",
FullPath -> True]
{{},(},{},
{/usr/local/mathematica/AddOns/StandardPackages/ DiscreteMath/Combinatorica.m}, {}}
Annotation["Utilities’ Package’"]
{Title, Context, Author, Summary, Package Version, Mathematica Version, Copyright, History, Keywords, Limitations, Discussion}
Annotation["Utilities’Package’", "Mathematica Version"]
{(* :Mathematica Version: 4.0 *)}
 
Показ времени операций — ShowTime
В подпакете ShowTime собраны средства для осуществления контроля за временем выполнения различных операций:

  • ShowTime [expr] — выводит время выполнения операции ехрr;
  • On [ShowTime] — включает вывод времени исполнения последовательности операций;
  • Off [ShowTime] — выключает вывод времени исполнения последовательности операций.

Следующие примеры иллюстрируют применение этих средств:
<<Utilities’ShowTime’
NIntegrate[x Exp[-x] Sin[x], {x, 0, Infinity}]
0.05 Second
0.5
Off[ShowTime]
0. Second
ShowTime[Sum[1/n, {n, I, 999}]];
0.11 Second
 Контроль за временем исполнения операций — важная часть отладки высокоэффективных программ и программных модулей.

Обратите внимание на то, что время исполнения использованных в примерах выражений относится к компьютеру, на котором примеры выполнялись (Pentium II 350 МГц). Для других компьютеров результаты хронометража будут другими.

Задание данных только вещественного типа — RealOnly

Задание данных только вещественного типа — RealOnly
В ряде случаев (как при вычислениях, так и при построении графиков) Mathematica сообщает о наличии у функций особых значений. Это хорошо иллюстрирует, на котором предпринята попытка построения графика, казалось бы, простой функции х^ (1/3). Нетрудно заметить, что график в отрицательной области значений х не построен и перед построением неполного графика выдан целый букет предупреждающих сообщений.
Причина этой частичной неудачи в том, что в некоторых точках данная функция дает комплексные значения. Например:
(-8.0) ^ (1/3)
1. + 1.732051
 Подпакет ReaLOnly не вводит никаких новых функций. далее…

Города и расстояния — CityData и Geodesy &nbsp

Города и расстояния — CityData и Geodesy  
В подпакете CityData можно найти функции, позволяющие найти координаты большинства крупных городов мира: CityData [city, datatype], CityData [city] иCityData[datatype]. Например:
<<Miscellaneous`CityData`
CityData["Montreal",
CityPosition]
{{45, 30}, {-73, -36}}
CityData["Washington"]
{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}}}
 Координаты (широта и долгота) выдаются в формате {градусы, минуты} или {градусы, минуты, секунды}.
В этом же подпакете есть функции для вычисления расстояний между городами:

  • CityDistance [ "cityl", "pity"] — возвращает расстояние между двумя указанными городами;
  • CityDistance["cityl","city",CityDistanceMethod->Method] — возвращает расстояние между двумя указанными городами со спецификацией метода вычислений (по умолчанию используется функция SphericalDistance из подпакета Geodesy).

Пример вычисления расстояния между городами дан ниже:
CityDistance["Washington", "Montreal"]//N
786.915
Базу данных можно расширять, добавляя в нее информацию о новых городах:
CityPosition[{"Champaign", "USA", "IL"}] = {{40, 7, 5},
{-88, -14, -48}};
 Убедимся, что информация действительно добавлена:
CityData["Champaign", CityPosition]
{{40, 7, 5}, {-88, -14, -48}}
 Для добавления новых полей в базу данных можно использовать функцию AppendTc (см. урок 9). Например, добавим поле для хранения информации о населении:
AppendTo[$CityFields, CityPopulation]
 Теперь введем в базу данных информацию о населении Вашингтона:
CityPopulation[{"Washington", "USA", "DC"}] = 638000;
Проверим результат, запросив всю имеющуюся в базе информацию об этом городе:
CityData["Washington"]
{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}},
{CityPopulation, 638000}}
 Как видите, результат теперь включает новую информационную категорию —
CityPopulation. 
В подпакете Geodesy есть функции, вычисляющие расстояние между двумя точками с учетом выпуклости Земли:

  • SphericalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — идеальный шар (сфера);
  • SpheroidalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — приплюснутый шар (сфероид).

Примеры вычислений по этим функциям представлены ниже:
SphericalDistance[{0, 0}, {45,-45}] //N
6671.7
SpheroidalDistance[{0, 0}, {45, 45}] //N
6662.47 % — %%
-9.23014
 
Географические и картографические данные — WortdData, WorldNames и WorldPlot
В пакете Miscellaneous имеется база данных по странам мира. Доступ к ней открывает подпакет WorldData. Для этого имеется функция WorldData [ "Страна" ], возвращающая список координат конечных отрезков прямых, которые задают контурный график — карту заданной страны. Например, данные по Азербайджану можно получить следующим образом:
<<Miscellaneous` WorldData`
WorldData["Azerbaijan"]
{{{2378, 2689}, {2374, 2770}, {2344, 2806}, {2330, 2770}, {2378, 2689}}, {{2361, 2849}, {2419, 2781}, {2472, 2701}, {2445, 2823}, {2509, 2778}, {2473, 2871}, {2510, 2915}, {2414, 3024}, {2307, 2933}, {2376, 2888}, {2361, 2849}}}
 Попробуйте сами найти данные по России (Russia) — мы их не приводим ввиду громоздкости списка, что вполне естественно, поскольку Россия — крупнейшая страна мира и имеет самую длинную границу (контурную линию) с многочисленными изломами.
В подпакете WorldNames имеется список стран, систематизированный по континентам: Africa, Asia, Europa, MiddleEa.st, NorthAmerica, Oceania, South-America и World (весь мир). Например, так можно узнать, какие страны расположены в Океании:
<<Miscellaneous`WorldNames`
Oceania // InputForm
{"Indonesia", "Papua New Guinea", "Fiji", "Australia", "New Zealand")
Наиболее эффектными являются возможности подпакета WorldPlot, функции которого позволяют строить карты любой страны или всего мира:

  • WorldPlot [countrylist] — построение карты страны по списку ее данных;
  • WorldPlot [countrylist, RandomColors] — построение карты страны по списку ее данных с раскраской случайными цветами;
  • WorldPlot [countrylist, RandomGrays] — построение карты страны по списку ее данных с раскраской случайными оттенками серого цвета;
  • WorldPlot [ {countrylist, colorfunc} ] — построение карты страны по списку ее данных с раскраской по функции colorfunc;
  • WorldPlot [ {countrylist, colorlist) ] — построение карты страны по списку ее данных с раскраской по списку colorlist.

На показано построение контурной карты России (верхний рисунок) и цветной карты мира. Раскраска достигается применением директивы RandomColors.
Следующий рисунок показывает возможность композиционного изображения картографических изображений. На нем построена карта Америки и особо выделены (более темным цветом) территории Канады и Мексики. Здесь для цветовых выделений использована директива GrayLevel, позволяющая задавать степень густоты серого цвета. далее…

Регрессия

Регрессия
 
Линейная регрессия общего вида — LinearRegression
В подпакете LinearRegression имеются расширенные функции для проведения линейной регрессии общего вида — в дополнение к включенной в ядро функции Fit. Прежде всего это функция Regress:

  • Regress [data, { I, х, х^2 }, х] — осуществляет регрессию данных data, используя квадратичную модель;
  • Regress [data, {I, x1, x2, xlx2 }, {x1, x2 }] — осуществляет регрессию, используя в ходе итераций зависимость между переменными x 1 и х 2 ;
  • Regress [data, {f 1, f2,…}, vars] — осуществляет регрессию, используя модель линейной регрессии общего вида с уравнением регрессии, представляющим линейную комбинацию функций f i от переменных vars.

Данные могут быть представлены списком ординат {у1,у2,…} или списком
{{xll,xl2,…,yl}, {х21,х22,…,у2},…}.
Ниже приведены примеры использования функции Regress:
<<Statistics`LinearRegression`
data={{1,1.9},{2,2.95},{3,4.3},{4,4.8},{5,5}}
{{1, 1.9}, {2, 2.95}, {3, 4.3}, {4, 4.8}, (5, 5}}
(regress = Regress[data, {l,x, x^2}, x] Chop[regress, 10^(-6)])
[Parameter-Table->

Estimate

SE

TStat

PValue

1

0.1

0.421613

0.237185

0.834595

x

1.89786

0.321297

5.90687

0.0274845′

X 2

-0.182143

0.0525376

-3.4669

0.0740731

RSquared->0.988994, AdjustedRSquared ->0.977988,
EstimatedVariance -> 0.0386429, ANOVATable ->

Model

DF
2

SumOfSq
6.94471

MeanSq
3.47236

FRatio
89.8577

PValue
0.0110062,

Error

2

0.0772857

0.0386429

 

 

Total

4

7.022

func = Fit[data, {l,x,.x^2}, x]
0.1 +1.89786x-0.182143×2
Options[Regress]
{RegressionReport -> SurnmaryReport, IncludeConstant -» True, BasisNames->Automatic, Weights->Automatic, Tolerance->Automatic, ConfidenceLevel->0.95}
На показан еще один пример проведения регрессии, сопровождаемой графической визуализацией с помощью функции MultipleListPlot.
Пакет линейной регрессии содержит и ряд иных функций, с которыми можно ознакомиться с помощью справочной базы данных системы Mathematica. Напоминаем еще раз, что сама функция при линейной регрессии может быть нелинейна, она является линейной только относительно искомых коэффициентов регрессии.
Нелинейная регрессия — NonlinearFit
В подпакете NonlinearFit содержатся функции для выполнения нелинейной регрессии общего вида:

  • NonlinearFit[data,model,variables,parameters] — выполняет регрессию по заданной модели (формуле) model с переменными variables и параметрами parameters для заданных данных data;
  • NonlinearRegress[data,model,variables,parameters] —выполняет регрессию по заданной модели (формуле) model с переменными variables и параметрами parameters для заданных данных data с выдачей списка диагностики.

Данные могут быть представлены списком ординат {у1,у2,…} или списком {{x11,x12,…, yl}, {х21, х22,…, у2},…}. В ходе регрессии минимизируются заданные параметры, так что заданная модель регрессии приближает данные с минимальной среднеквадратичной погрешностью.
На показан пример выполнения логарифмической регрессии. При ней модель представлена выражением a*Log[b*x]. Результатом действия функции NonlinearFit является уравнение регрессии в виде этой модели с найденными значениями параметров а и Ь. Представлена также визуализация регрессии в виде графика функции-модели и исходных точек. Следует отметить, что реализация нелинейной регрессии разными методами может давать заметно различающиеся результаты, так что представленные результаты не являются абсолютно строгими.
Применение функции NonlinearRegress иллюстрирует следующий пример:
NonlinearRegress [data, a*Log[b*x] ,{x},{a,b}]
{BestFitParameters -> {a -> 0.665503, b -4 4. 11893},
ParameterCITable ->
Estimate Asymptotic SE CI
a 0.665503 0.0504167 {0.525524, 0.805482},
b 4.11893 0.806289 {1.88031, 6.35754}
EstimatedVariance -> 0 . 00558058,
DF SumOfSq MeanSq
Model 2 17.7425 8.87126
ANOVATable ->
Error 4 ‘0.0223223 0.00558058,
Uncorrected Total 6 17.7648
Corrected Total 5 0.994689
1. -0.972212 AsymptoticCorrelationMatrix ->
Curvature
Max Intrinsic 2 . 94314 x lO’16,
FitCurvatureTable -» }
Max Parameter-Effects 2.07792
95. % Confidence Region 0.379478
Как нетрудно заметить, в данном случае выдается отчет о проведении регрессии. Более детальные данные об опциях и обозначениях в отчетах нелинейной регрессии можно найти в справочной базе данных. далее…