jiejie2009
2010-01-13, 11:14
我是新手,刚学matlab,想利用以下程序实现Y(:,1)的广义积分,下限是0,上限是无穷。望指教
clc,clear,close all;
global N
t0=0;tf=20;
y1=0.66e-6;
y2=0;
a=1;
[T,Y]=ode45('li',[t0,tf],[y1,y2]);
%i=0:length(T)-1;
b(a,2)=int(Y(:,1),0,inf);b(a,1)=N;
a=a+1;
end
plot(b(:,1),b(:,2),'r-')
结果画的不对,应该是一条平滑的曲线,纵轴的范围应该是0到17左右。
li.m文件是
function dy=li(t,y)
global N
dy=zeros(2,1);
dy(1)=y(1)*N*exp(-y(2))-y(1);
dy(2)=y(1);
clc,clear,close all;
global N
t0=0;tf=20;
y1=0.66e-6;
y2=0;
a=1;
[T,Y]=ode45('li',[t0,tf],[y1,y2]);
%i=0:length(T)-1;
b(a,2)=int(Y(:,1),0,inf);b(a,1)=N;
a=a+1;
end
plot(b(:,1),b(:,2),'r-')
结果画的不对,应该是一条平滑的曲线,纵轴的范围应该是0到17左右。
li.m文件是
function dy=li(t,y)
global N
dy=zeros(2,1);
dy(1)=y(1)*N*exp(-y(2))-y(1);
dy(2)=y(1);