悠若谷 发表于 2009-9-24 22:32

matlab求解复杂积分方程问题


我主要是要编一个function来解这么一个方程
xc就是newsolve函数的输入变量x,输出变量是要求的N
其他都已知

function N=newsolve(x)
ns=1.520167;
nf=1.548167;
k=2*pi/0.6328e-6;
nc=1;
w=1e-6;
D=2e-6;
N1=1.5436744;
dN=0.0235072;
N=fzero(@(N) quadl(@(y) k*sqrt((ns+dN*y/(pi*D).*exp(-(y/D).^2).*arrayfun(@(y) quadl(@(s) exp(-s.^2)./(s.^2+(y/D).^2),-w/D,w/D),y)).^2-N.^2),1e-10,x)-pi/4-atan(sqrt((N.^2-nc^2)/(N1^2-N.^2))+(k^2*N1*(-1.855800789988048e4))/((k^2*N1^2-k^2*N.^2)^1.5*2)),);

运行结果报错newsolve(1.537433e-6)
??? Error using ==> fzero at 260
Function values at interval endpoints must be finite and real.
Error in ==> newdraw2 at 16
N=fzero(@(N) quadl(@(y) k*sqrt((ns+dN*y/(pi*D).*exp(-(y/D).^2).*arrayfun(@(y) quadl(@(s)
exp(-s.^2)./(s.^2+(y/D).^2),-w/D,w/D),y)).^2-N.^2),1e-10,x)-pi/4-atan(sqrt((N.^2-nc^2)/(N1^2-N.^2))+(k^2*N1*(-
这个问题琢磨了好几天 都没解决
想了很久还是决定来问问
哪位前辈有空帮忙看看吧!
页: [1]
查看完整版本: matlab求解复杂积分方程问题