Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Create Definitions for Variables and Functions - Wolfram Mathematica

Создание определений для переменных и функций

Mathematica обладает очень обширным представлением о функциях как о правилах для любых преобразований. Значения переменных задаются таким же образом. Когда Вы задаете значение переменной, переменная становится символом для этого значения.

Здесь приведено простое правило преобразования. Оно гласит: каждый раз, когда Вы видите x, замените его на 3:

In[31]:=

CreateDefinitionsForVariablesAndFunctionsRU_1.gif

Out[31]=

CreateDefinitionsForVariablesAndFunctionsRU_2.gif

Переменная x имеет значение 3.

Каждый раз, когда Вы вычисляете выражение, 3 заменяет собой x:

In[32]:=

CreateDefinitionsForVariablesAndFunctionsRU_3.gif

Out[32]=

CreateDefinitionsForVariablesAndFunctionsRU_4.gif

Вы можете удалить это правило, заменив его другим:

In[33]:=

CreateDefinitionsForVariablesAndFunctionsRU_5.gif

Out[33]=

CreateDefinitionsForVariablesAndFunctionsRU_6.gif

Новое правило гласит: каждый раз, когда Вы видите x, замените его на y^2. И пока нет правила, присвоенного для y, его значение будет таким как есть.

Присвоение значения для y:

In[34]:=

CreateDefinitionsForVariablesAndFunctionsRU_7.gif

Out[34]=

CreateDefinitionsForVariablesAndFunctionsRU_8.gif

Сейчас, если Вы вновь рассчитаете x, определенное для x правило указывает на то, чтобы заменить x на y^2, а определенное для y правило заменяет y на 4, так что результат составляет 4^2, или 16:

In[35]:=

CreateDefinitionsForVariablesAndFunctionsRU_9.gif

Out[35]=

CreateDefinitionsForVariablesAndFunctionsRU_10.gif

Если Вы изменяете значение y, значит и значение x изменится:

In[36]:=

CreateDefinitionsForVariablesAndFunctionsRU_11.gif

Out[36]=

CreateDefinitionsForVariablesAndFunctionsRU_12.gif

In[37]:=

CreateDefinitionsForVariablesAndFunctionsRU_13.gif

Out[37]=

CreateDefinitionsForVariablesAndFunctionsRU_14.gif

Теперь присвоим значение для z, например так:

In[38]:=

CreateDefinitionsForVariablesAndFunctionsRU_15.gif

Out[38]=

CreateDefinitionsForVariablesAndFunctionsRU_16.gif

С тех пор как  переменной y было присвоено значение 3, определенное Вами правило гласит "заменить z на 9", а не "заменить z на y^2". Таким образом, z не зависит от y:

In[39]:=

CreateDefinitionsForVariablesAndFunctionsRU_17.gif

Out[39]=

CreateDefinitionsForVariablesAndFunctionsRU_18.gif

In[40]:=

CreateDefinitionsForVariablesAndFunctionsRU_19.gif

Out[40]=

CreateDefinitionsForVariablesAndFunctionsRU_20.gif

Это происходит потому, что когда правило определяется оператором = (Set), правая часть была вычислена еще до определения правила.

Вы также можете определять правила, используя оператор := (SetDelayed), например так:

In[41]:=

CreateDefinitionsForVariablesAndFunctionsRU_21.gif

Когда правило задается при помощи оператора := правая часть выражения не вычисляется до тех пор, пока правило не будет определено. Таким образом, даже если y уже имеет значение, это новое правило гласит: каждый раз, когда вы видите z, замените его на y^2. Так что, в этом случае, z зависит от y:

In[42]:=

CreateDefinitionsForVariablesAndFunctionsRU_22.gif

Out[42]=

CreateDefinitionsForVariablesAndFunctionsRU_23.gif

In[43]:=

CreateDefinitionsForVariablesAndFunctionsRU_24.gif

Out[43]=

CreateDefinitionsForVariablesAndFunctionsRU_25.gif

In[44]:=

CreateDefinitionsForVariablesAndFunctionsRU_26.gif

Out[44]=

CreateDefinitionsForVariablesAndFunctionsRU_27.gif

Функции в Mathematica определяются правилами, которые действуют по модели. Здесь приводится одна из простейших:

In[45]:=

CreateDefinitionsForVariablesAndFunctionsRU_28.gif

f[x_] является моделью, в которой x_ означает любое выражение (представленное в правой части под именем x). Правило гласит: если у вас есть функция f, содержащая любое выражение, замените ее этим выражением возведенным в квадрат:

In[46]:=

CreateDefinitionsForVariablesAndFunctionsRU_29.gif

Out[46]=

CreateDefinitionsForVariablesAndFunctionsRU_30.gif

In[58]:=

CreateDefinitionsForVariablesAndFunctionsRU_31.gif

Out[58]=

CreateDefinitionsForVariablesAndFunctionsRU_32.gif

Здесь приведена функция, содержащая два аргумента:

In[48]:=

CreateDefinitionsForVariablesAndFunctionsRU_33.gif

In[49]:=

CreateDefinitionsForVariablesAndFunctionsRU_34.gif

Out[49]=

CreateDefinitionsForVariablesAndFunctionsRU_35.gif

Всегда используйте := для определения функций, в противном случае переменные в правой части могут не отражать связанные с ними выражения в левой части, поскольку они будут вычислены до того как правило будет определено:

In[50]:=

CreateDefinitionsForVariablesAndFunctionsRU_36.gif

Out[50]=

CreateDefinitionsForVariablesAndFunctionsRU_37.gif

Этот результат получен потому, что x равен 9, а y равен 3. Это правило гласит, что все, что соответствует модели h[x_,y_] заменяется на 90:

In[59]:=

CreateDefinitionsForVariablesAndFunctionsRU_38.gif

Out[59]=

CreateDefinitionsForVariablesAndFunctionsRU_39.gif