Как задать функцию с условием в wolfram mathematica

Корпорация "Центр"

Иллюстрированный самоучитель по Mathematica 3/4

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

Иллюстрированный самоучитель по Mathematica 3/4 › Основы программирования › Условные выражения и безусловные переходы
Рис. 10.5. Продолжение вычислений после команды Interrupt[ ]

Функция IF

Как у большинства языков программирования, условные выражения задаются с помощью оператора или функции IF. Система Mathematica имеет функцию If, формы которой представлены ниже:

  • If [condition, t, f] – возвращает t, если результатом вычисления condition является True, и f, если результат равен False;
  • If [condition, t, f, u ] – то же, но дает и, если в результате вычисления condition не было получено ни True, ни False.

Следующий пример показывает создание программной процедуры с циклом Do, выход из которой реализуется с помощью функции If и директивы прерывания Aborted[ ]:

Научный форум dxdy

Скоро закипю наверное.
Задача: есть известная функция $f(x)$. Функция $G(x,y)$записывается следующим образом:
$G(x,y) = F_1(x,y,f(x)), 0<f(x)<1$
$G(x,y) = F_2(x,y,f(x)), f(x)>=1$

Как задать в математике?!

Да, спасибо. разобрался, спустившись до элементарных примеров, где всё работает отлично. Проблема оказалась в том, что в моем случае $f(x)$— результат численного решения ОДУ, и похоже математика не понимает этого.

Добавлено спустя 22 минуты 13 секунд:

мда. похоже придется MathLab разворачивать (

Добавлено спустя 33 минуты 40 секунд:

Сомнения, что $f(x)$в формате численного решения может ввести в тупик математику, оказались небезпочвенными и в конечном итоге, получилось так как нужно. Напишу с чем боролся последние 4 часа — глядишь кому понадобится.
Было написано:

Condition

is a pattern which matches only if the evaluation of test yields True .

Корпорация "Центр"

represents a rule which applies only if the evaluation of test yields True .

is a definition to be used only if test yields True .

Details

    All pattern variables used in test must also appear in patt . lhs :=Module [ < vars >, rhs /; test ] allows local variables to be shared between test and rhs . You can use the same construction with Block and With . &#187;

Examples

Basic Examples &#160; &#160; (2)

Make a definition with the condition that x should be positive:

Replace all elements which satisfy the condition of being negative:

Scope &#160; &#160; (2)

Share a variable between a condition and function body:

Use Condition inside a function body to control evaluation:

Properties & Relations &#160; &#160; (2)

Condition evaluates a Boolean expression on named parts of a pattern:

PatternTest applies test functions to patterns, which need not have names:

Use Except to effectively negate Condition :

Possible Issues &#160; &#160; (1)

Repeated [ p /; test ] requires that every named pattern in p have the same value throughout the sequence:

The same is true of RepeatedNull :

Use PatternTest in combination with unnamed patterns to allow a sequence of nonidentical elements:

Корпорация "Центр"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *