登录论坛

查看完整版本 : [求助]请教一个积分函数调用问题


宇天
2009-03-06, 10:54
我有一个函数
y=(Tf-Td*exp(Vs*(Zdb+4*da*x^2/na^2)))/(1-exp(Vs*(Zdb+4*da*x^2/na^2)));
需要在其他系数在执行文件中计算后赋值给这个函对后对X定积分。
采用M 文件对函数进行的定义如下
function y=I(x)
y=(Tf-Td*exp(Vs*(Zdb+4*da*x^2/na^2)))/(1-exp(Vs*(Zdb+4*da*x^2/na^2)));


在执行文件中调用如下

global Tm
global Tf
global Tc
V=0.000001;
global da
Ti=linspace(0,10,1000);
t=500;
global L;
global na;
Tm=933.52;
Tf=300;
Tc=1000;
da=0.0001;
L=1;
na=0.001;
Ks=797.286;

Ds=0.1237*exp(-18709/Tm);
Dl=0.0000105*exp(-2860/Tc);
Kl=276.8766+0.1386*(Tc-273);

global Vs
global Vl
global Zdb
global Zub
Vs=-V/Ds;
Vl=-V/Dl;
Zdb=-V*t-da;
Zub=Zdb+L;

global Td
for i=1:1000
Td=Tm-Ti(i);
I1=quadl(@I,-0.5*na,0.5*na);
J1=quadl(@J,-0.5*na,0.5*na);
Pb(i)=Vs*Ks*(na*log(Td/tf)+(Tf-Td)/Tf/Td*I1)-Vl*Kl*(na*log(Td/Tc)+(Tc-Td)/Td/Tc*J1);

end


运行后 得到错误提示
Undefined function or variable 'Td'.

Error in ==> I at 2
y=(Tf-Td*exp(Vs*(Zdb+4*da*x^2/na^2)))/(1-exp(Vs*(Zdb+4*da*x^2/na^2)));
Error in ==> quadl at 64
y = feval(f,x,varargin{:}); y = y(:).';

Error in ==> interface at 42
I1=quadl(@I,-0.5*na,0.5*na);



请问以上错误是什么意思?出现的原因在哪里? 该怎么改代码?

异常感谢!