Scilab: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 1429:
==== Математическая функция ====
В Scilab есть предопределенные математические функции, такие как тригонометрические, экспонента и другие. Но что, если вам необходимо определить собственную функцию? Далее мы будем отличать математические функции и программируемые функции
Отметим, что математическую функцию можно объявить через программирование, но так как обычно ее тело состоит из одной строчки, то рациональнее всего объявлять ее через специальную функцию '''deff()'''. Общий синтаксис имеет вид
Строка 1476:
-->deff('[x y]=f(z,u)',['x=z^2-u';'y=u^3'])
</source>
Созданная функция переопределится, о чем вам скажет предупреждающее сообщение. Если вы не хотите постоянно видеть это предупреждение, то воспользуйтесь функцией '''funcprot(0)'''.
Этой строкой мы создали сложную функцию, которая принимает уже два обязательных аргумента и возвращает вектор результатов. Функция сложная потому, что ее тело состоит уже из двух строк. Обратите внимание, что тело сложной функции должно передаваться '''deff()''' вектором-столбцом, каждая строка которого является инструкцией, записываемой строковым типом данных. Вызовем нашу функцию
Строка 1484 ⟶ 1486 :
2.
</source>
Очевидно, что мы получили не то, что хотели, ведь функция должна была вернуть вектор. К сожалению, в данном случае ''ans'' не переопределилась автоматически системой в вектор и был записан только результат расчета переменной x, потому что при объявлении в '''deff()''' мы
<source lang=Scilab>
-->[ans ans]=f(2,2)
|