2
我想在matlab中求解給定的公式來找到beta的值,但是卻出現錯誤。我在下面發佈代碼和錯誤。我該如何解決超越方程?
在此先感謝。
n1=1.77;
n2=1.45;
d=1e-6;
lambda = 1e-6;
ko = 2*pi/lambda;
A=(ko*n1)^2;
B=(ko*n2)^2;
syms beta;
s = 'sqrt(A-beta^2)*(d/2)*tan(sqrt(A-beta^2)*d/2)=sqrt(beta^2-B)*(d/2)';
solve (s);
錯誤:
Error using solve>processString (line 337)
' sqrt(A-beta^2)*(d/2)*tan(sqrt(A-beta^2)*d/2)=sqrt(beta^2-B)*(d/2) ' is not a valid expression or equation.
Error in solve>getEqns (line 267)
eqns = processString(eqns, v, vc);
Error in solve (line 150)
[eqns,vars,options] = getEqns(varargin{:});
Error in transcendetal (line 9)
solve (s);
我無法重現此;如預期的那樣,我獲得了2個「beta」值。 –
在您發佈的錯誤消息中,您的等式前面有一個空格,也許這會導致錯誤? – Mailerdaimon
@Mailerdaimon:嗯......似乎並非如此 –