| fanyushan |
2010-07-19 14:12 |
fminsearch应用出错
我的M文件如下: 4ed+'-"m function [G5]=fun(x); ^Z7])arA syms n1 n2 k1 k2 d; kN9pl^2 [subwave,nsub]=textread('subout.txt','%f %f'); ?pdvFM [filmwave,filmtran]=textread('filmtr.dat','%f %f'); OHeVm-VC [p,q]=size(subwave); Gd$odKtI for j=1:p; eiB5 8b3 wavel(j)=subwave(j,1);
^|DI9G(Bs n(j)=n1+n2/((wavel(j))^2); 24_F`" :-= k(j)=k1*exp(k2/wavel(j)); {l=! N(j)=n(j)-i*k(j); V.PbAN phase(j)=2*pi*N(j)*d/wavel(j); M$L1!o1Xf ns(j)=nsub(j,1); "=I
ioY B(j)=cos(phase(j))+ns(j)*i*sin(phase(j))/N(j); '`^<*;w C(j)=i*N(j)*sin(phase(j))+ns(j)*cos(phase(j)); *h Ph01 T(j)=4*ns(j)/((B(j)+C(j))*conj(B(j)+C(j))); I^'kt[P'FZ ts(j)=1-((1-ns(j))/(1+ns(j)))^2; <7TE[M' t1(j)=ts(j)*T(j); nfck3h tf(j)=filmtran(j,1)/100; '|n-w\
>Wv difference(j)=(t1(j)-tf(j))^2; p{7"a end Wd'wL"6De G=symsum(difference(j),1,401); Gu Msw*{> G1=subs(G,n1,sym('x(1)')); SesJg~8 G2=subs(G1,n2,sym('x(2)')); (v*$ExF G3=subs(G2,k1,sym('x(3)')); c #+JG G4=subs(G3,k2,sym('x(4)')); `As.1@ G5=subs(G4,d,sym('x(5)'));
R*I{?+ Jq) !)={ AZ cWf8 6R% I) 在matlab下运行 RO, >> options=optimset('tolfun',1e-8,'tolx',1e-8); /!,>P[Vx >> [xmin,value,flag,output]=fminsearch(@fun,[1.7,4000,0.005,400,500],options); Oa=0d;_ )|f!}( p +hg|!SS@5 结果出错如下: g]O"l?xx1D Kl~jcq&z ??? Conversion to double from sym is not possible. 5%C-eB Error in ==> fminsearch at 175 n\aG@X%oq fv(:,1) = funfcn(x,varargin{:}); {zhN>n_ CZg$I&x 哪位高手给看看 Qy |*[
|
|