exponenta event banner

принять

Задать допущение для символического объекта

Описание

пример

assume(condition) утверждает, что condition является действительным. assume не является добавкой. Вместо этого он автоматически удаляет все предыдущие допущения для переменных в condition.

пример

assume(expr,set) утверждает, что expr принадлежит set. assume удаляет предыдущие допущения для переменных в expr.

пример

assume(expr,'clear') очищает все допущения по всем переменным в expr.

Примеры

Общие допущения

Задайте предположение, используя соответствующий синтаксис.

Предположим, что «x»Синтаксис
реальныйassume(x,'real')
рациональныйassume(x,'rational')
положительныйassume(x,'positive')
положительное целое числоassume(x,{'positive','integer'})
менее -1 или более 1assume(x<-1 | x>1)
целое число от 2 до 10assume(in(x,'integer') & x>2 & x<10)
не целое числоassume(~in(z,'integer'))
не равно 0assume(x ~= 0)
дажеassume(x/2,'integer')
странныйassume((x-1)/2,'integer')
от 0 до 2δassume(x>0 & x<2*pi)
кратное δassume(x/pi,'integer')

Предположим, переменная четна или нечетна

Принять x даже если предположить, что x/2 - целое число. Принять x является странным, предполагая, что (x-1)/2 - целое число.

Принять x является ровным.

syms x
assume(x/2,'integer')

Найти все четные числа между 0 и 10 использование solve.

solve(x>0,x<10,x)
ans =
 2
 4
 6
 8

Принять x нечетно. assume не является аддитивным, а вместо этого автоматически удаляет предыдущее предположение in(x/2, 'integer').

assume((x-1)/2,'integer')
solve(x>0,x<10,x)
ans =
 1
 3
 5
 7
 9

Очистить допущения x для дальнейших вычислений.

assume(x,'clear')

Множественные допущения

Последовательный assume команды не устанавливают несколько допущений. Вместо этого каждый assume удаляет предыдущие допущения и устанавливает новые допущения. Установка нескольких допущений с помощью assumeAlso или & оператор.

Принять x > 5 а затем x < 10 с помощью assume. Использовать assumptions проверить, существует ли только второе предположение, потому что assume удалил первое предположение при установке второго.

syms x
assume(x > 5)
assume(x < 10)
assumptions
ans =
x < 10

Предположим первое предположение в дополнение ко второму, используя assumeAlso. Проверьте наличие обоих допущений.

assumeAlso(x > 5)
assumptions
ans =
[ 5 < x, x < 10]

Очистить допущения x.

assume(x,'clear')

Предположим, что оба условия используются & оператор. Проверьте наличие обоих допущений.

assume(x>5 & x<10)
assumptions
ans =
[ 5 < x, x < 10]

Очистить допущения x для будущих расчетов.

assume(x,'clear')

Допущения по Integrand

Вычисление неопределенного интеграла с предположением о символьном параметре и без него a.

Использовать assume установить предположение, что a не равно -1.

syms x a
assume(a ~= -1)

Вычислите этот интеграл.

int(x^a,x)
ans =
x^(a + 1)/(a + 1)

Теперь очистите предположение и вычислите один и тот же интеграл. Без предположений, int возвращает этот кусочный результат.

assume(a,'clear')
int(x^a, x)
ans =
piecewise(a == -1, log(x), a ~= -1, x^(a + 1)/(a + 1))

Допущения по параметрам и переменным уравнения

Используйте допущения, чтобы ограничить возвращаемые решения уравнения определенным интервалом.

Решите это уравнение.

syms x
eqn = x^5 - (565*x^4)/6 - (1159*x^3)/2 - (2311*x^2)/6 + (365*x)/2 + 250/3;
solve(eqn, x)
ans =
   -5
   -1
 -1/3
  1/2
  100

Использовать assume для ограничения решений интервалом -1 < =  x < = 1.

assume(-1 <= x <= 1)
solve(eqn, x)
ans =
   -1
 -1/3
  1/2

Установка нескольких предположений одновременно с помощью логических операторов and, or, xor, notили их ярлыки. Например, все отрицательные решения меньше -1 и все позитивные решения, превышающие 1.

assume(x < -1 | x > 1)
solve(eqn, x)
ans =
  -5
 100

Для дальнейших вычислений очистите допущения.

assume(x,'clear')

Использование допущений для упрощения

Установка соответствующих допущений может привести к более простым выражениям.

Попробуйте упростить выражение sin(2*pi*n) использование simplify. simplify функция не может упростить ввод и возвращает ввод как есть.

syms n
simplify(sin(2*n*pi))
ans =
sin(2*pi*n)

Принять n - целое число. simplify теперь упрощает выражение.

assume(n,'integer')
simplify(sin(2*n*pi))
ans =
0

Для дальнейших вычислений очистите допущение.

assume(n,'clear')

Допущения по выражениям

Задать предположение для символьного выражения.

Можно задать допущения не только для переменных, но и для выражений. Например, вычислите этот интеграл.

syms x
f = 1/abs(x^2 - 1);
int(f,x)
ans =
-atanh(x)/sign(x^2 - 1)

Установите предположение x2  - 1 > 0 для получения более простого результата.

assume(x^2 - 1 > 0)
int(f,x)
ans =
-atanh(x)

Для дальнейших вычислений очистите допущение.

assume(x,'clear')

Допущения для доказательства отношений

Докажи отношения, которые держатся при определенных условиях, сначала предполагая условия, а затем используя isAlways.

Докажи, что sin(pi*x) никогда не равно 0 когда x не является целым числом. isAlways функция возвращает логические 1 (true), что означает, что условие сохраняется для всех значений x в соответствии с установленными предположениями.

syms x
assume(~in(x,'integer'))
isAlways(sin(pi*x) ~= 0)
ans =
  logical
   1

Допущения по элементам матрицы

Задать допущения для всех элементов матрицы с помощью sym.

Создание символьной матрицы 2 на 2 A с автоматически сгенерированными элементами. Укажите set как rational.

A = sym('A',[2 2],'rational')
A =
[ A1_1, A1_2]
[ A2_1, A2_2]

Вернуть допущения по элементам A использование assumptions.

assumptions(A)
ans =
[ in(A1_1, 'rational'), in(A1_2, 'rational'),...
  in(A2_1, 'rational'), in(A2_2, 'rational')]

Также можно использовать assume установка допущений для всех элементов матрицы. Теперь предположим, что все элементы A имеют положительные рациональные значения. Установка допущений в виде ячейки символьных векторов {'positive','rational'}.

assume(A,{'positive','rational'})

Вернуть допущения по элементам A использование assumptions.

assumptions(A)
ans =
[ 0 < A1_1, 0 < A1_2, 0 < A2_1, 0 < A2_2,...
  in(A1_1, 'rational'), in(A1_2, 'rational'),...
  in(A2_1, 'rational'), in(A2_2, 'rational')]

Для дальнейших вычислений очистите допущения.

assume(A,'clear')

Входные аргументы

свернуть все

Заявление предположения, определенное как символическое выражение, уравнение, отношение, или вектор или матрица символических выражений, уравнений или отношений. Можно также объединить несколько предположений с помощью логических операторов. and, or, xor, notили их ярлыки.

Выражение для задания предположения, определяемого как символьная переменная, выражение, вектор или матрица. Если expr является вектором или матрицей, то assume(expr,set) устанавливает предположение, что каждый элемент expr принадлежит set.

Набор допущений, заданный как символьный вектор, строковый массив или массив ячеек. Доступные допущения: 'integer', 'rational', 'real', или 'positive'.

Можно объединить несколько предположений, указав строковый массив или массив ячеек символьных векторов. Например, допустим положительное рациональное значение, указав set как ["positive" "rational"] или {'positive','rational'}.

Совет

  • assume удаляет все предположения, ранее заданные для символьных переменных. Чтобы сохранить предыдущие допущения при добавлении предположения, используйте assumeAlso.

  • При удалении символьной переменной из рабочей области MATLAB ® с помощьюclear, все предположения, которые вы установили для этой переменной, остаются в символическом движке. Если позже объявить новую символическую переменную с тем же именем, она наследует эти предположения.

  • Очистка всех допущений, установленных для символьной переменной var, используйте эту команду.

    assume(var,'clear')
  • Чтобы удалить все объекты в рабочей области MATLAB и закрыть механизм символьной математической Toolbox™, связанный с рабочей областью MATLAB, очистив все допущения, используйте следующую команду:

    clear all
  • MATLAB проецирует комплексные числа в неравенствах на действительную ось. Если condition является неравенством, то обе стороны неравенства должны представлять реальные значения. Неравенства с комплексными числами недопустимы, поскольку поле комплексных чисел не является упорядоченным полем. (Невозможно сказать, 5 + i больше или меньше 2 + 3*i.) Например, x > i становится x > 0, и x <= 3 + 2*i становится x <= 3.

  • Панель инструментов не поддерживает предположения о символьных функциях. Вместо этого делайте предположения относительно символьных переменных и выражений.

  • При создании новой символьной переменной с помощью sym и syms, можно также задать предположение, что переменная является действительной, положительной, целочисленной или рациональной.

    a = sym('a','real');
    b = sym('b','rational');
    c = sym('c','positive');
    d = sym('d','positive');
    e = sym('e',{'positive','integer'});

    или более эффективно

    syms a real
    syms b rational
    syms c d positive
    syms e positive integer
Представлен в R2012a