查看: 314|回复: 0|关注: 0

[未答复] MATLAB报错:错误使用 erfc 输入必须为实数完全数

[复制链接]

新手

7 麦片

财富积分


050


2

主题

6

帖子

0

最佳答案
发表于 2018-7-21 14:59:36 | 显示全部楼层 |阅读模式
本帖最后由 yu-12345 于 2018-7-21 15:01 编辑

源代码如下:
syms q;
t=1:20;
x=0.1:0.1:10;
Df=2.03e-9;Dm=2.03e-10;k=0.01;u=1.2;b=1.5e-7;
I=zeros(1,2000);
  for i=1:10;
  for j=1:20;
a2=((x(i).^2)./(4*Df*t(j))).^0.5;
a1=@(q)exp(-q.^2-(u.^2.*x(i).^2)./((16.*Df.^2).*(q.^2))).*erfc(x(i).^2.*k.*sqrt(Dm)./(4.*Df.*b.*q.^2)./(2.*sqrt(t(j)-(x(i).^2./(4.*Df.*q.^2)))));
a4=2./pi.^0.5.*exp(u.*x(i)./2.*Df);
  for m=1:2000;
I(1,m)=a4.*quadl(a1,a2,+inf);
  end
  end
  end
出现错误:
错误使用 erfc
输入必须为实数完全数。

出错 @(q)exp(-q.^2-(u.^2.*x(i).^2)./((16.*Df.^2).*(q.^2))).*erfc(x(i).^2.*k.*sqrt(Dm)./(4.*Df.*b.*q.^2)./(2.*sqrt(t(j)-(x(i).^2./(4.*Df.*q.^2)))))

出错 quadl (line 62)
y = feval(f,x,varargin{:}); y = y(:).';
请问该怎么修改代码呢

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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