求解Octave中的两个非线性方程

时间:2017-03-15 06:32:26

标签: octave equation-solving

我试图用Octave解决以下两个方程:

eqn1 = (wp/Cwc)^(2*N) - (1/10^(0.1*Ap))-1 == 0;
eqn2 = (ws/Cwc)^(2*N) - (1/10^(0.1*As))-1 == 0;

我使用了以下代码:

syms Cwc N
eqn1 = (wp/Cwc)^(2*N) - (1/10^(0.1*Ap))-1 == 0;
eqn2 = (ws/Cwc)^(2*N) - (1/10^(0.1*As))-1 == 0;
sol = solve(eqn1 ,eqn2, Cwc, N)

wswpAsAp的定义为1.57080.314160.5,{{ 1}}分别。

但是我收到以下错误:

  

错误:Python异常:NotImplementedError:无法解决   
45   
发生在Python代码块的第7行:   
126491*(pi*(3*10**N*sqrt(314311)*pi**(-N)/1223)**(1/N)/2)**(2*N) - 126495

我该怎么做才能解决这个问题?

修改

我稍微修改了方程式。

d = sp.solve(eqs, *symbols, dict=True)

现在我收到了这个错误:

  

错误:Python异常:AttributeError:pkg load symbolic clear all syms Cwc N wp = 0.31416 ws = 1.5708 As = 45 Ap = 0.5 eqn2 = N - log10(((1/(10^(0.05*As)))^2)-1)/2*log10(ws/Cwc) == 0; eqn1 = N - log10(((1/(10^(0.05*Ap)))^2)-1)/2*log10(wp/Cwc) == 0; sol = solve(eqn1,eqn2,Cwc,N) 没有属性MutableDenseMatrix。   
发生在Python代码块的第3行:   
is_Relational

1 个答案:

答案 0 :(得分:1)

观察方程,在同一项的基础指数中未知数,强烈暗示没有找到符号解。我给一些符号解算器提供了一个简化的系统(2/x)^y = 4, (3/x)^y = 5,它们都没有得到任何东西。因此,解决这个问题的唯一方法是数字化(这是有道理的,因为您拥有的四个已知参数无论如何都是一些浮点数)。 Octave用于此目的的数值解算器是fsolve。用法示例:

function y = f(x)
  Cwc = x(1);
  N = x(2);
  ws = 1.5708;
  wp = 0.31416;
  As = 0.5;
  Ap = 45;
  y = [(wp/Cwc)^(2*N) - (1/10^(0.1*Ap))-1; (ws/Cwc)^(2*N) - (1/10^(0.1*As))-1];
endfunction

fsolve(@f, [1; 1])

(这里,[1; 1]是初始猜测。)输出

0.31413
0.19796