Главная  Длительная эволюция 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [ 9 ] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

ВИЗУАЛИЗАЦИЯ, С помощью „Математики" можно получать не только двумерные, но и трехмерные графики (рис. 1.7):

Plot3D[AiryAiPrime[(x + y2)/2]Sin[9 х у], {x,0,Pi/2},{y,0,Pi/2}];


Рис. 1.7

Кроме того, функции от двух аргументов можно изучать с помощью функций ContourPlot и DensityPlot, рисующих контурные и плотностиые графики (рис. 1.8):

ContourPlot[AiryAiPrime[(x + y"2)/2]Sm[9 х у], {х,О,Pi/2}, {у,0,Pi/2}, PlotPoints-v 25];




В рассмотренных примерах первым аргументом графических функций является произведение производной от функции Эйри первого рода AiryAiPrime и функции Sin от полиномиальных аргументов, содержащих переменные х и у. Функции Plot, PlotSD, ContourPlot и DensityPlot не исчерпывают всего списка графических функций, которых более десятка. Все такие функции содержат средства для преобразования стиля рисунков с целью придания им большей выразительности и информативности. Выше мы уже воспользовались одним из этих средств: PlotStyle в функции ListPlot, задавая относительные размеры точек и их цвет.

ПРОГРАММИРОВАНИЕ. „Математика" позволяет писать программы как в традиционном процедурном стиле языков Фортран, Паскаль и т.п., так и в функциональном стиле и стиле определений (правил преобразований). Простой пример функционального стиля предоставляет программа вычисления среднего значения и дисперсии случайной последовательности чисел. В „Математике" последовательность чисел записывается в виде списка. Например, 1= {2,4,9} есть последовательность чисел 2, 4, 9. Определим функцию mean соотношением

mean[x -List] := Apply [Plus, x]/Length[x]

Смысл входящих в это определение функций следующий. Length имеет значением длину списка. Plus дает сумму своих аргументов, а Apply заменяет заголовки функций. В данном случае заголовок List заменяется на Plus. Заголовок List, поставленный после аргумента х , означает, что функция mean определена только на множестве списков. Вычислим среднее значение элементов списка 1:

mean[l]



Теперь определим функцию var, вычисляющую дисперсию: var[x -List] := mean[(x - mean[x])2]

и вычислим дисперсию случайной последовательности десяти натуральных чисел, заключенных между 1 и 1000.

data = Table[Random[Integer, {1,1000}], {i, 10}]

{335,272,528,907,87,300,497,817,183,388}

var[data] N 62268.2

Примером программирования в стиле правил преобразований является программа, в которой определяется следующая функция minimum, обрабатывающая списки. Для списков, состоящих из целых чисел, функция имеет результатом минимальное число в списке. Если список состоит из символов, то вычисляется первый символ в лексикографическом порядке, встроенном в „Математику". Другие списки никак не преобразуются.

minimum[l: {х Integer}] := Min[l]

minimum[l: {х Symbol}] := First [Sort [1]]

minimum[l -List] := 1

При вычислении выражения minimum[l], где / есть произвольный список, прежде всего проверяется, являются ли все элементы списка целыми числами или все символами. Если реализуется одна из этих возможностей, то рассматриваемое выражение преобразуется в соответствии с первым или вторым правилом преобразования. Если элементы списка не удовлетворяют критериям, то список не изменяется. Наконец, если аргумент функции minimum не является списком, то исходное выражение остается невычисленным.



[0] [1] [2] [3] [4] [5] [6] [7] [8] [ 9 ] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86]

0.001