displayFormula

Отобразите символьную формулу из строки

Описание

пример

displayFormula(symstr) отображает символьную формулу из строки symstr без оценки операций. Все переменные рабочей области, которые заданы в symstr заменяются их значениями.

пример

displayFormula(symstr,old,new) заменяет только выражение или переменную old с new. Выражения или переменные, отличные от old не заменяются их значениями.

Примеры

свернуть все

Создайте матрицу 3 на 3. Умножьте матрицу на скалярный коэффициент K^2.

syms K A
A = [-1, 0, 1; 1, 2, 0; 1, 1, 0];
B = K^2*A
B = 

(-K20K2K22K20K2K20)[-K ^ 2, sym (0), K ^ 2; K ^ 2, 2 * K ^ 2, sym (0); K ^ 2, K ^ 2, sym (0)]

Результат автоматически показывает умножение, выполняемое поэлементно.

Покажите формулу умножения без оценки операций при помощи displayFormula. Введите формулу как строку. Переменная A в строке заменяется ее значениями.

displayFormula("F = K^2*A")

F=K2(-101120110)F = = K ^ 2 * [(-sym (1)), sym (0), sym (1); sym (1), sym (2), sym (0); sym (1), sym (1), sym (0)]

Задайте строку, которая описывает дифференциальное уравнение.

S = "m*diff(y,t,t) == m*g-k*y";

Создайте строковые массивы, который объединяет дифференциальное уравнение и дополнительный текст. Отобразите формулу вместе с текстом.

symstr = ["'The equation of motion is'"; S;"'where k is the elastic coefficient.'"];
displayFormula(symstr)
The equation of motion isThe equation of motion is

m2t2 y=mg-kym * diff (y, t, 2) = = m * g - k * y

where k is the elastic coefficient.where k is the elastic coefficient.

Создайте строку S представление символического выражения.

S = "exp(2*pi*i)";

Создайте другую строку symstr который содержит S.

symstr = "1 + S + S^2 + cos(S)"
symstr = 
"1 + S + S^2 + cos(S)"

Отобразите symstr как формула без оценки операций при помощи displayFormula. S в symstr заменяется на его значение.

displayFormula(symstr)
1+e2πi+e2πi2+cos(e2πi)1 + exp (2 * sym (pi) * sym (1i)) + (exp (2 * sym (pi) * sym (1i)) ^ sym (2) + cos (exp (2 * sym (pi) * sym (1i)))

Чтобы вычислить строки S и symstr в качестве символьных выражений используйте str2sym.

S = str2sym(S)
S = 1sym (1)
expr = str2sym(symstr)
expr = S+cos(S)+S2+1S + cos (S) + S ^ 2 + 1

Замените переменную S с его значением при помощи subs. Оцените результат в двойной точности с помощью double.

double(subs(expr))
ans = 3.5403

Задайте строку, которая представляет квадратичную формулу с коэффициентами a, b, и c.

syms a b c k
symstr = "a*x^2 + b*x + c";

Отобразите квадратичную формулу, заменив a с k.

displayFormula(symstr,a,k)
kx2+bx+ck * x ^ 2 + b * x + c

Снова отобразите квадратичную формулу, заменив a, b, и c с 2, 3, и -1, соответственно.

displayFormula(symstr,[a b c],[2 3 -1])
2x2+3x-12 * x ^ 2 + 3 * x - 1

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

f = str2sym(symstr);
sol = solve(f)
sol = 

(-b+b2-4ac2a-b-b2-4ac2a)[- (b + sqrt (b ^ 2 - 4 * a * c) )/( 2 * a); - (b - sqrt (b ^ 2 - 4 * a * c) )/( 2 * a)]

Использование subs для замены a, b, и c в решении с 2, 3, и -1, соответственно.

solValues = subs(sol,[a b c],[2 3 -1])
solValues = 

(-174-34174-34)[- sqrt (sym (17) )/4 - sym (3/4); sqrt (sym (17) )/4 - sym (3/4)]

Входные параметры

свернуть все

Строка, представляющая символьную формулу, заданную как вектор символов, строковый скаляр, массив ячеек векторов символов или строковых массивов.

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

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

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

См. также

| | | |

Введенный в R2019b