求解Octave中的非线性方程组

时间:2013-12-05 14:34:28

标签: matlab math octave

我是Octave的新手,想知道如何解决非线性方程。这是一个示例等式

x^4-16x^3+61x^2-22x-12=0

更新

w+x+y+1=3

2w+3x+4y+5=10

w-x+y-1=4

感谢

2 个答案:

答案 0 :(得分:5)

使用fzero来获得最接近给定x0的解决方案(好吧,不一定最近,但找到第一个):

这应该有效:

x0 = 0;
f = @(x) x^4 - 16*x^3 + 61*x^2 - 22*x - 12;
fzero(f,x0);
ans =  0.76393

此外,您应该查看roots,以获取多项式的所有解。

x = [1 -16 61 -22 -12];  % The coefficients of your polynomial
y = roots(x)
y = 
   10.29150
    5.23607
    0.76393
   -0.29150

好的,所以无论如何我都会回答第二个问题:

x = [1 1 1; 2 3 4; 1 -1 1]; % Coefficients of w, x and y
y = [2; 5; 5];              % [3-1; 10-5; 4+1]

b = x\y
b =
   2.2500
  -1.5000
   1.2500

答案 1 :(得分:2)

fsolve是一个很好的起点。