2014-09-05 4 views
0

J'ai une équation simple, je suis en train de résoudrerésolution de l'équation en utilisant octave

num1=-2 
num2=-3 

x+num2=num1 
x+-3=-2 
x=1 

Comment puis-je faire cela en octave. Dans matlab je peux faire y = résoudre ('x-3 = -2') mais cela ne fonctionne pas dans octave 3.8.1 qui est la version que j'utilise. Comment puis-je obtenir l'octave pour résoudre ces types d'équations?

Je suis intéressé par la valeur numérique d'une solution.

+0

Voulez-vous résoudre de telles équations symboliquement ou numériquement? C'est-à-dire, êtes-vous simplement intéressé par une valeur numérique pour une solution (éventuellement avec une petite quantité d'erreur à virgule flottante) plutôt qu'une expression analytique exacte? – horchler

+0

@horchler Je suis intéressé par la valeur numérique d'une solution. –

+0

@RickT: x = num1-num2; Pour les équations plus complexes, il y a linsolve, sqp et beaucoup d'autres solveurs. – Andy

Répondre

3

Je suppose que l'équation dans votre question est un exemple. Si vous êtes intéressé par une solution numérique, il n'est souvent pas nécessaire d'utiliser des maths symboliques. En Octave (ou Matlab), vous pouvez utiliser fzero pour trouver une racine réelle/zéro d'une équation non linéaire en termes d'une variable libre à une seule variable. Pour votre exemple simple linéaire, en utilisant un anonymous function pour représenter votre équation:

num1 = -2; 
num2 = -3; 
f = @(x)x+num2-num1; 
x0 = 0; % Initial guess for x 
x = fzero(f,x0) 

Si une équation a plusieurs racines/zéros, vous devrez essayer différentes estimations initiales à proximité de chaque zéro pour trouver la valeur exacte. Octave a également une version de fsolve de Matlab pour résoudre des systèmes d'équations non linéaires dans plusieurs variables. Si vos équations sont linéaires (par exemple, A*x = b), vous devriez regarder linsolve.

Questions connexes