声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1772|回复: 0

[编程技巧] matlab求解复杂积分方程问题

[复制链接]
发表于 2009-9-24 22:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

  1. function N=newsolve(x)
  2. ns=1.520167;
  3. nf=1.548167;
  4. k=2*pi/0.6328e-6;
  5. nc=1;
  6. w=1e-6;
  7. D=2e-6;
  8. N1=1.5436744;
  9. dN=0.0235072;
  10. 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)),[1.52017,1.543]);
复制代码

运行结果报错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*(-
这个问题琢磨了好几天 都没解决
想了很久还是决定来问问
哪位前辈有空帮忙看看吧!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 04:39 , Processed in 0.103266 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表