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

Solving two non-linear equations in Octave

我正在尝试使用 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.545分别

但我收到以下错误:

error: Python exception: NotImplementedError: could not solve
126491*(pi*(3*10**N*sqrt(314311)*pi**(-N)/1223)**(1/N)/2)**(2*N) - 126495
occurred at line 7 of the Python code block:
d = sp.solve(eqs, *symbols, dict=True)

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


编辑:

我稍微修改了方程式。

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)

现在我收到这个错误:

error: Python exception: AttributeError: MutableDenseMatrix has no attribute is_Relational.
occurred at line 3 of the Python code block:
if arg.is_Relational:

查看方程式,在基数 相同项的指数中有未知数,强烈建议找不到符号解。我给了几个符号求解器一个简化的系统 (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