MATLAB使用fzero时出错

时间:2017-08-03 11:18:19

标签: matlab function iteration

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等参数复杂。 函数是fxfxErEr是符号。首先Er5.72+7.21i。我正在寻找接近第一个呃的新价值。但我有问题;

  

使用fzero时出错(第307行)启动猜测时的函数值必须为   有限的和真实的。

     

s0308中的错误(第76行)cozum = fzero(@(Er)fx(Er),5.72 + 7.21 * i)

1 个答案:

答案 0 :(得分:0)

快速搜索fzero的文档,告诉您只能使用实数作为初始猜测输入参数,因此fzero不会像您的情况那样使用复数。