在Matlab中将非线性符号方程转换为矩阵

时间:2013-10-13 03:41:20

标签: matlab matrix symbolic-math nonlinear-functions

我知道如何使用equationstomatrix函数将线性方程转换为矩阵

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 ]

1 个答案:

答案 0 :(得分:0)

我有同样的问题。 我能找到的最接近的解决方案是将符号方程转换为函数句柄(@): matlabFunction(a,'file','ODEfunctions',... 'vars',{[v]}); a是我的符号表达矩阵。和v是符号变量。 你得到的函数有一个v的名字输入,但它是一个数字函数,而不是符号。你可以使用矩阵。 (当然我有解决一组ODE的问题)

欢呼声。