使用八度音程求解方程

时间:2014-09-05 19:11:40

标签: matlab octave gnu

我有一个简单的等式,我正试图解决

num1=-2
num2=-3

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

我怎么能在八度音阶中这样做。在matlab中,我可以做 y = solve('x-3 = -2'),但这不适用于 octave 3.8.1,这是我正在使用的版本。我怎样才能得到八度音程来解决这些类型的方程?

我对解决方案的数值感兴趣。

3 个答案:

答案 0 :(得分:3)

我假设您问题中的等式是一个例子。如果您对数字解决方案感兴趣,通常不需要使用符号数学。在Octave(或Matlab)中,您可以使用fzero根据单变量自由变量找到非线性方程的实根/零。对于简单的线性示例,使用anonymous function表示您的等式:

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

如果一个方程有多个根/零,你需要在每个零点附近尝试不同的初始猜测,以找到确切的值。

Octave还有一个版本的Matlab fsolve来解决多个变量中的非线性方程组。如果您的方程是线性的(例如A*x = b),则应该查看linsolve

答案 1 :(得分:0)

在此处查看此讨论: http://octave.1599824.n4.nabble.com/Newbie-question-on-solving-simple-equations-td1635574.html

Octave并没有真正做到这些类型的问题,但是你可能会使用Fsolve。我会把它放在评论中,因为它不是一个完全解决方案,但我没有足够的代表!抱歉

答案 2 :(得分:0)

输入以下命令:

syms x

解决(X-3 == 2)

你应该得到以下内容:

ans =(sym)5

使用Octave的在线版本检查了这一点