这个是微分方程组m文件
%%%%%%%%%%%%%%%%%%%%%
function dy=edfa(z,y);
ovl=0.6;
semi=2.7*10^(-25);
sabs=3.1*10^(-25);
pabs=3.8*10^(-25);
n0=0.2*10^25;
Aeff=1.26*10^(-6);
hvp=6.63*10^(-34)*3.061*10^14;%单位w
hvs=6.63*10^(-34)*3.10*10^14;
tau=1.14;%单位s
wsa=ovl*sabs/(hvs*Aeff)*y(2);
wse=ovl*semi/(hvs*Aeff)*y(2);
wp=ovl*pabs/(hvp*Aeff)*y(1);
n1=(wse+1/tau)/(wse+1/tau+wsa+wp)*n0;
n2=(wsa+wp)/(wse+1/tau+wsa+wp)*n0;
dy(1)=-ovl*pabs*n1*y(1);
dy(2)=ovl*(semi*n2-sabs*n1)*y(2);
dy=[dy(1);dy(2)];
下面是运行指令
%%%%%%%%%%%%%%%%%%%%%
%解微分方程
sym z;
y=sym('y(1),y(2)');
ovl=0.6;
semi=2.7*10^(-25);
sabs=3.1*10^(-25);
pabs=3.8*10^(-25);
n0=0.2*10^25;
Aeff=1.26*10^(-6);
hvp=6.63*10^(-34)*3.061*10^14;%单位w
hvs=6.63*10^(-34)*3.10*10^14;
tau=1.14;%单位s
wsa=ovl*sabs/(hvs*Aeff)*y(2);
wse=ovl*semi/(hvs*Aeff)*y(2);
wp=ovl*pabs/(hvp*Aeff)*y(1);
n1=(wse+1/tau)/(wse+1/tau+wsa+wp)*n0;
n2=(wsa+wp)/(wse+1/tau+wsa+wp)*n0;%怎样嵌入函数n2
y0=[100;0.1];
st=[0:0.1:100];
options=odeset('outputfcn','','outputsel',[1,2]);
[z,y]=ode45('edfa',st,y0,options);
plot(z,y(:,1),'r');figure(2);
plot(z,y(:,2),'b');figure(3);
fplot('(ovl*sabs/(hvs*Aeff)*y(:2)+ovl*pabs/(hvp*Aeff)*y(:1))/(ovl*semi/(hvs*Aeff)*y(:2)+1/tau+ovl*sabs/(hvs*Aeff)*y(:2)+ovl*pabs/(hvp*Aeff)*y(:1))*n0',[0:0.1:100]);
%
fplot里面的函数是,n2用y(1),y(2)表达式表示的,而y(1),y(2)是微分方程组的解
运行的时候,出现以下错误%
??? Error using ==> inline.feval
Not enough inputs to inline function.
Error in ==> fplot at 102
x = xmin; y = feval(fun,x,args{4:end});
有个疑问其实feval是什么函数?
我的语言里好像也没有这个函数。
谢谢,希望大家指出错误啊