Я пытаюсь решить систему уравнений в MATLAB с 3 переменными и 5 константами. Можно ли решить для трех переменных с помощью решения, сохраняя константы как символические и не заменяя их числовыми значениями?
Решите только для определенных переменных с помощью символьного решателя
Ответы (1)
При использовании функции РЕШИТЬ (из Symbolic Toolbox) вы можете указать переменные, для которых хотите найти решение. Например, допустим, у вас есть три уравнения с переменными x
, y
и z
и константами a
и b
. Следующее даст вам структуру S
с полями 'x'
, 'y'
и 'z'
, содержащими символьные уравнения для тех переменных, которые включают константы a
и b
:
>> S = solve('x+y=a','x-y=b','z=x^2+y^2','x','y','z'); %# Solve for x, y, and z
>> [S.x; S.y; S.z] %# Get the equations from the structure
ans =
a/2 + b/2 %# Equation for x
a/2 - b/2 %# Equation for y
a^2/2 + b^2/2 %# Equation for z
Если для системы уравнений не удается найти символьные решения, вместо них будут возвращены числовые решения.
person
gnovice
schedule
31.08.2010
да. Также неплохо отметить, что это будет работать, только если на OP установлен MATLAB Symbolic Toolbox и что переменные должны быть объявлены как символические с помощью команды
syms
.
- person Gilead; 31.08.2010
@Gilead: на самом деле вам не нужно объявлять переменные как символические, если уравнения и переменные, переданные в SOLVE, являются строками, как в примере, который я использовал выше.
- person gnovice; 31.08.2010