如何在matlab中求解已知变量和未知变量的多方程

how to solve multi-equation with known and unkown variable in matlab

我有 4 个方程式,我知道 x 和 y 以及 ans1 到 ans4。但我希望 matlab 求解这 4 个方程并给我 a、b、c、d。我应该怎么办?

  ans1 = I(x,y);
  ans2=I(x+1,y); 
  ans3=I(x,y+1);
  ans4=I(x+1,y+1);  

a*x+b*y+c*x*y+d==ans1
a*(x+1)+b*y+c*(x+1)*y+d==ans2
a*x+b(y+1)+c*x*(y+1)+d==ans3
a*(x+1)+b*(y+1)+c*(x+1)*(y+1)+d==ans4

问题的表述方式,我猜答案是

[x y x*y 1; (x+1) y (x+1)*y 1; x (y+1) x*(y+1) 1; (x+1) (y+1) (x+1)*(y+1) 1]*[a b c d]'=[ans1 ans2 ans3 ans4]'

A = [x      y      x*y          1 
     (x+1)  y      (x+1)*y      1
     x      (y+1)  x*(y+1)      1
     (x+1)  (y+1)  (x+1)*(y+1)  1];

x = [a
     b
     c
     d];

b = [ans1
     ans2
     ans3
     ans4];

A*x == b;

因此求解 x:

[x y x*y 1; (x+1) y (x+1)*y 1; x (y+1) x*(y+1) 1; (x+1) (y+1) (x+1)*(y+1) 1]\[ans1 ans2 ans3 ans4]'

A\b;