=
, _equal
(Равные) уравнения
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
x = y _equal(x
,y
)
x = y
определяет уравнение.
x = y
эквивалентен вызову функции _equal(x, y)
.
Оператор =
возвращает символьное выражение, представляющее уравнение. Получившееся выражение может быть выполнено к TRUE
или FALSE
функциональным bool
. Это также служит условиями управления в if
, repeat
и операторах while
. Во всех этих случаях, тестирующих на равенство, чисто синтаксический тест. Например, bool(0.5 = 1/2)
возвращает FALSE
несмотря на то, что оба числа совпадают численно. Далее, Булевы выражения могут быть выполнены к TRUE
, FALSE
или UNKNOWN
функциональным is
. Тесты с помощью is
являются семантическим сравнением x
и y
, применяющий математические факторы.
Уравнения имеют два операнда: левая сторона и правая сторона. Используйте lhs
и rhs
, чтобы извлечь эти операнды.
Булево выражение not x = y
всегда преобразовывается в x <> y
. Выражение not x <> y
всегда преобразовывается в x = y
.
В следующем примере отметьте различие между синтаксическим и числовым равенством. Числа 1.5 и совпадают численно. Однако 1.5 имеет доменный тип DOM_FLOAT
, тогда как имеет доменный тип DOM_RAT
. Следовательно, они не рассматриваются как равные в следующем синтаксическом тесте:
1.5 = 3/2; bool(%)
Для уравнений с числами с плавающей запятой используйте оператор ~=
вместо =
. bool
функций и is
тестируют, совпадают ли приближения с плавающей точкой до относительной точности, данной DIGITS
:
1.5 ~= 3/2; bool(1.5 ~= 3/2); is(1.5 ~= 3/2);
Следующие выражения совпадают синтаксически:
_equal(1/x, diff(ln(x),x)); bool(%)
Булев оператор not
преобразовывает равенства и неравенства:
not a = b, not a <> b
В этом примере используйте оператор =
, чтобы сравнить нематематические объекты:
if "text" = "t"."e"."x"."t" then "yes" else "no" end
Протестируйте равенство этих выражений при помощи синтаксического теста через bool
и семантического теста через testeq
:
bool(1 = x/(x + y) + y/(x + y)), testeq(1 = x/(x + y) + y/(x + y))
Уравнения являются типичными входными объектами для системных функций, таких как solve
:
solve(x^2 - 2*x = -1, x)
|
Произвольные объекты MuPAD® |
Выражение типа "_equal"
.