преобразовать нелинейные символьные уравнения в матрицу в Matlab

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

syms x y z;
[A, b] = equationsToMatrix([x + y - 2*z == 0, x + y + z == 1, 2*y - z + 5 == 0], [x, y, z])

%solution of the equation set

A =
[ 1, 1, -2]
[ 1, 1,  1]
[ 0, 2, -1]

b =
  0
  1
 -5

к сожалению, equationsToMatrix нельзя использовать для нелинейных уравнений. Если я хочу преобразовать несколько нелинейных уравнений в матричные, есть ли способ сделать это? например, у меня есть три уравнения:

 x^2 + y^2+ 1=0,
 x - y + 1=0,
 x^2+xy-2=0,

Я хочу получить следующий результат

 A=
   [1, 1,  1, 0,  0, 0 ]
   [0, 0,  1, 1, -1, 0 ]
   [1, 0, -2, 0,  0, 1 ]

person user2874944    schedule 13.10.2013    source источник
comment
Ближайшая вещь, о которой я могу думать, это «коэффс» ссылка, но это не т дать вам именно то, что вы ищете. Возможно, вы могли бы что-то сделать со списком коэффициентов и списком терминов, как в последнем примере.   -  person andy mcevoy    schedule 13.10.2013


Ответы (1)


У меня такая же проблема. самое близкое решение, которое я мог найти, состояло в том, чтобы преобразовать символические уравнения в дескриптор функции (@): matlabFunction(a, 'file', 'ODEfunctions',... 'vars', {[v]}); а — моя матрица символического выражения. и v — символьные переменные. вы получаете функцию, которая вводит имена v, но это числовая функция, а не символическая. который вы можете использовать без матрицы. (конечно, у меня была проблема с решением набора ODE)

ваше здоровье.

person Ohad    schedule 12.02.2014