初学者 一个关于matlab问题 fplot用法,请高手指教

这个是微分方程组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是什么函数?
我的语言里好像也没有这个函数。
谢谢,希望大家指出错误啊

feval 是个评估函数 不需要你做什么修改 是matlab自带的 问题是你要fplot的东西 是一个全部是0的 1001×1001的矩阵 也就是你那个一长串位于fplot函数括号里面第一部分的东西 粗略的帮你看了一下你函数运算的答案没有保存下来 由于大学毕业太久了 微分方程看着头大 还是建议你重新写一个可以@的函数保存结果再画图
温馨提示:答案为网友推荐,仅供参考