在 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)
ws
、wp
、As
和 Ap
给出为 1.5708
、0.31416
、0.5
, 45
分别
但我收到以下错误:
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
我正在尝试使用 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)
ws
、wp
、As
和 Ap
给出为 1.5708
、0.31416
、0.5
, 45
分别
但我收到以下错误:
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 attributeis_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