книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М
.pdfи древесная кора. Все естественные фракталы, так же как и некоторые математиче ские самоподобные объекты, являются стохастическими, или случайными. Так что подобие во фракталах часто реализуется благодаря случайности. Если хотите, можно сказать, что подобие выражается в подобии законов, управляющих случаем. Возмож но, именно поэтому фракталы так долго не воспринимались всерьез “академической” наукой, ограничивавшейся, как правило, “идеальными” (детерминированными) и “правильно устроенными” фракталами вроде кривых Пеано, Гильберта, канторова мно жества и т.д. Однако когда физики занялись изучением сложно устроенных объектов, оказалось, что фракталы — не исключение, а повсеместно встречающиеся объекты. Более того, в некотором смысле именно из них и “сотворен мир” Поэтому изучению фракталов начали уделять все большее внимание. Однако при попытке применить компьютерное моделирование для изучения фракталов выяснилось, что написать нужные программы не так-то просто. И тому были причины... Попробуйте догадаться, какие.
Исторический обзор и первое знакомство |
33 |
Глава 2
Первое знакомство — калькулятор
Вэтой главе...
♦Знакомство с системой Mathematica
♦Арифметические действия над числами
♦Задачи
♦Функции
♦Блокнот и меню
♦Алгебраические преобразования
♦Построение графиков
♦Анализ
♦Списки и линейная алгебра
♦Уравнения
♦Экстремумы функций
♦Линейное программирование
♦Резюме
♦Задачи
Знакомство с системой Mathematica
После того как запустим систему Mathematica 5, получится примерно то, что изо бражено на рис. 2.1. Большое белое окно слева — блокнот. Именно в него вводится информация, и именно в нем отображаются результаты. Окно в середине — заставкаприветствие и справка. Окно справа — панель для ввода математических символов, греческих букв и т.п. После запуска системы Mathematica в блокнот можно вводить информацию.
Если же по каким-либо причинам активным оказалось другое окно, щелкнув в бе лом рабочем поле, переключитесь на окно ввода системы Mathematica.
Введите
2+2
и нажмите комбинацию клавиш <Shift+Enter> (т.е. одновременно клавиши <Shift> и
<Enter>).
В окне системы вы увидите следующее (рис. 2.2).
I n [ 1 ] : = 2 + 2
Out[1]= 4
Рис. 2.1. Вот что отображается на экране после запуска системы Mathematica
Возможно, вам пришлось подождать (обычно, не более нескольких секунд). Но не огорчайтесь, это происходила загрузка ядра системы — дальше будет веселей. Напри мер, 10! вычисляется практически мгновенно. Для этого нужно набрать
1 0 !
и нажать <Shift+Enter>. В результате получим следующее.
In[2]:= 10!
Out[2]= 3628800
Значение 100! можно вычислить, установив двойным щелчком курсор ввода в
строке
In [2]:= 10!
и добавив еще один 0, в результате чего получим
1 0 0 !
После <Shift+Enter> будет отображено следующее.
In[3]:= 100! Out[3]=
9332621544394415268169923885626670049071596826438162146859296389521759
9993229915608941463976156518286253697920827223758251185210916864000000
000000000000000000
Первое знакомство — калькулятор |
35 |
Рис. 2.2. Вот что появляется в окне ввода системы Mathematica после .вы числения 2+2
Арифметические действия над числами
Арифметические действия |
в системе Mathematica обозначаются как |
обычно: |
|
+ (сложение), |
(вычитание), * |
(умножение), / (деление), А (возведение в |
степень). |
Впрочем, иногда вместо * достаточно набрать пробел. С делением, правда, есть одна закавыка. Вычислим, например, 10/2.
10/2
5
Получилось! (Здесь и далее я опускаю эти надоедливые in [...]:= и Out [...]=.) Но вот вычисление 22/7 даст
22/7
22/7
Результат, конечно, точный, но несколько тавтологичный. Как же получить деся тичное приближение? Для этого достаточно сделать хотя бы одно число веществен ным, поставив, например, точку после 22 или 7.
22/7.
3.14286
Есть и другой способ: явно применить функцию N, дающую приближенное чис ленное значение аргумента. (Аргументы функций заключаются в квадратные скобки.) Для этого введите
N[22/7]
и в результате получится
3.14286
36 |
Гпава 2 |
Функция N позволяет с необходимой точностью вычислять некоторые математиче ские константы и использовать их. Например:
N [Pi]
3.14159
Чтобы вычислить число к со 100 значащими цифрами, укажите нужное количество значащих цифр вторым аргументом функции N.
N [Pi/ 100] 3.14159265358979323846264338327950288419716939937510582097494459230781 6406286208998628034825342117068
Вот как, например, можно решить известную классическую задачу: какое число больше, е* или ъе
N [EAPi-PiAE,10]
0.6815349144
Как видите, ё*>ъе Провести соответствующие вычисления (вместе с оценками точности) вручную не так уж и просто, поэтому обычно первокурсники при решении этой задачи используют свойства функций. Конечно же, в системе Mathematica преду смотрены и функции.
Функции
В системе Mathematica имеется множество математических функций, их имена вполне естественны, за тем исключением, что имена всех встроенных функций начина ются с прописной буквы. Кроме того, не забывайте, что аргументы функций заключаются в квадратные скобки. Ну, и, конечно же, помните о том, что здесь тригонометрические функции называются так, как к этому привыкли американцы: например, вместо при вычного для нас tg (тангенса) в системе Mathematica указывается Tan. Ниже приведе ны некоторые примеры — выполните сами те из них, которые сочтете интересными.
Ехр[3]-ЕА3
0
Ничего неожиданного. Но это не арифметика. Числовые значения здесь не вычис лялись. Поэтому сразу получился точный результат. Если бы вычислялись значения, получилось бы нечто совсем иное.
N [Ехр [3] ,20]'-N[EA 3,20]
0 . х 1 ( Г 19
А вот модуль перехода от натуральных логарифмов к десятичным.
N [Log [10,Е], 100] 0.43429448190325182765112891891660508229439700580366656611445378316586 46492088707747292249493384317483
А ниже вычислены sin 1° и cos 1° (Улугбеку они бы очень пригодились).
N [Sin[Pi/180],100] 0.01745340643728351281941897851631619247225272030713964268361242764059 738420392807004200192679102134691
N [Cos[Pi/180] ,100] 0.99984769515639123915701155881391485169274031058318593965832071451153 91811033372153972993952881103455
Первое знакомство — калькулятор |
37 |
Как видим, с тригонометрией все в ажуре! Давайте теперь проведем вычисление с корнями, — дычислим приближенное значение числа т11, столь излюбленного спе циалистами по математической логике.
N [2ASqrt[2],100] 2.66514414269022518865029724987313984827421131371465949283597959336492 0446178705954867609180005196417
Конечно, то же самое можно сделать и иначе.
Ы[2л (2а (1/2)),Ю 0]
2.66514414269022518865029724987313984827421131371465949283597959336492
0446178705954867609180005196417
Можно также ввести переменную и написать так:
х=2л (1/2); N [2лх,100] 2.66514414269022518865029724987313984827421131371465949283597959336492 0446178705954867609180005196417
Говоря о корнях, не могу удержаться, чтобы не показать вам вот это:
(-1 )^ (1/2) i
Так что этот калькулятор и с комплексными числами справляется без труда! Но прежде чем переходить к алгебре, полезно хотя бы бегло познакомиться с блокно том и меню системы Mathematica.
Блокнот и меню
Чтобы упростить набор и вычисление выражений, рассмотрим возможности ин терфейса (оболочки) системы Mathematica. Чтобы сохранить протокол расчетов (блокнот), из меню Файл (File) выберите пункт Сохранить Как (Save As) и запишите блокнот в файл, например в файл myl (желательно в своем каталоге). Чтобы повто рить какое-либо вычисление, достаточно двойным щелчком установить курсор встав ки в соответствующую строку и нажать <Shift+Enter>. Это же можно сделать иначе: ус тановите I-образный курсор на квадратную скобку справа от формулы (курсор при этом изменит свой вид) и щелкните один раз. Скобка “почернеет” Это значит, что вы выделили ячейку, содержащую нужную вам формулу. Теперь выберите в меню системы Mathematica пункт Ядро^Вы числение^Вы числить Ячейки. После этого будут вычислены выделенные ячейки. При желаний выделенные ячейки можно копировать и размножать обычными для систем с графическим интерфейсом методами (с помо щью кнопок или меню). То же самое относится не только к ячейкам целиком, но и к их частям. Эти методы помогают записывать алгебраические выражения.
Алгебраические преобразования
Давайте посмотрим, как система Mathematica справляется с раскрытием скобок в степенях. Для этого служит функция Expand.
Expand [(а+Ь+с)л5]
а5 + 5 а4b + 10 а3b2 + 10 а2b3 + 5 а b4 + Ь5 + 5 а4с + 20 а3b с + 30 а2Ь2 с +
20 а Ь3с + 5 Ь4с + 10 а3с2 + 30 а2b с2 + 30 а Ь2с2 + 10 Ь3 с2 + 10 а2 с3 +
20 а Ъ с3+ 10 Ь2с3 + 5 а с4 + 5 b с4 + с5
38 |
Гпава 2 |
Упростим предыдущий результат.
Simplify [%]
(а + b + с)^
Разложим на множители алгебраическое выражение аю + Ью Для этого служит функция Factor.
Factor[аЛ10 + Ьл10]
(а2 + Ь2) (а8 - а6Ь2 + а4Ь4 - а2Ь6+ Ь8)
Теперь подставим а = u, b = у в предыдущий результат.
%/.{a->u, b -> V}
(и2 + v2) (и8 - и6v2 + и4v4 - и2v6+ V8)
Заметьте, что полученный на предыдущем шаге результат обозначен символом %, после него следует / и список подстановок {a->u, b -> v}.
Все это показывает, что система Mathematica вполне справляется с алгебраичес кими операциями. Но зачастую полученный результат (выражение, функцию) нужно представить в виде графика. '
Построение графиков
Система Mathematica богата графическими возможностями. Рассмотрим на приме рах построение хотя бы некоторых, наиболее часто встречающихся типов графиков.
Построение графиков функций одной переменной
Построение графика одной функции, заданной аналитически
Вот как можно построить график функции синус.
Plot[Sin[x], {х,-2 Pi,2 Pi}]
Первое знакомство — калькулятор |
39 |
Построение графиков нескольких функции, заданных аналитически
Вот как можно построить график нескольких функций.
Plot[{Sin[х],Sin[х/2],Sin[2х]}, {х, -2 Pi,2 Pi }]
Построение графика функции, заданной параметрически
Окружность, как известно, не является графиком ни одной однозначной функции. Тем не менее, она может быть задана параметрически. Например, вот так:
ParametricPlot [{Sin[t],Cos[t]},{t,0,2Pi}]
Конечно, масштабы по осям здесь разные, и потому окружность изображена как эллипс.
40 |
Гпава 2 |
А вот фигура Лиссажу.
ParametricPlot [{Sin[51],Cos[3t]},{t,0,2Pi}]
И еще одна, на этот раз разомкнутая (хотя концы ее найти не так-то просто!) “фи гура Лиссажу”.
ParametricPlot [{Sin[2Л (1/2) t],Cos[3 t]},{t,0,25 Pi}]
IrS/У / \ х / / \ \
Построение графиков функций двух переменных
Построим, например, график поверхности z — sin(;t2}').
Первое знакомство — калькулятор |
41 |
А вот параметрически заданный геликоид.
ParametricPlot3D[{u*Sin[t],и*Cos[t], t/3}, { t,0 , 1 2 } , {и,- 1 , 1 } , Ticks->None]
И, наконец, вот еще одно параметрически заданное тело.
42 |
Гпава 2 |