2017-08-03 3 views
0
y = @(Er) i*sqrt((((w^2*Mr*(Er))/isik_hizi^2)-(2*pi/lamdac)^2)); 
y0 = i* sqrt((w/isik_hizi)^2-(2*pi/lamdac)^2); 
yansima = @(Er) ((y0/m0)-(y(Er)/m))/((y0/m0)+(y(Er)/m)); 
T = @(Er) exp(-y(Er)*l); 
fx = @(Er) (s11*s22-s21*s12-(exp(-2*y0)*(la-l))*((T(Er)^2)-(yansima(Er)^2))/(1-(yansima(Er)^2*T(Er)^2))) 
cozum = fzero(@(Er) fx(Er),5.72+7.21*i) 

s11, s12, s21, s22 und andere komplexe Parameter. Funktion ist fx. fx haben Er. Er ist ein Symbol. Zuerst Er Wert 5.72+7.21i. Ich suche nach einem neuen Wert in der Nähe des ersten Er. Aber ich habe ein Problem;MATLAB Fehler bei der Verwendung von fzero

Fehler bei der Verwendung von fzero (Zeile 307) Der Funktionswert beim Starten der Schätzung muss endlich und real sein.

Fehler in s0308 (Linie 76) zu = fzero (@ (Er) fx (Er), 5,72 + 7,21 * i)

+0

versuchen Sie es mit 'fsolve' –

Antwort

0

Eine schnelle Suche nach Dokumentation von fzero, sagt, dass Sie nur verwenden können, eine reelle Zahl als Eingabe-Argument für die erste Schätzung, so dass fzero nicht für komplexe Zahlen wie in Ihrem Fall funktioniert.

Verwandte Themen