Решите только для определенных переменных с помощью символьного решателя

Я пытаюсь решить систему уравнений в MATLAB с 3 переменными и 5 константами. Можно ли решить для трех переменных с помощью решения, сохраняя константы как символические и не заменяя их числовыми значениями?


person Brian    schedule 30.08.2010    source источник


Ответы (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
comment
да. Также неплохо отметить, что это будет работать, только если на OP установлен MATLAB Symbolic Toolbox и что переменные должны быть объявлены как символические с помощью команды syms. - person Gilead; 31.08.2010
comment
@Gilead: на самом деле вам не нужно объявлять переменные как символические, если уравнения и переменные, переданные в SOLVE, являются строками, как в примере, который я использовал выше. - person gnovice; 31.08.2010