问题描述:
MATLAB画图没有报错但无图形
题目:用改进欧拉法画dy/dx=x+y,并与精确解y(x)=2e^x-1-x比较
h=0.1;
x=1:1:11;
y(1)=1;
y2(1)=1;
for i=1:1:10
k1=x(i)+y(x(i));
k2=x(i)+h+y(x(i))+h*k1;
y(i+1)=y(x(i))+h/2*(k1+k2);
y2(i+1)=2*exp(x(i+1))-1-x(i+1);
end
plot(x,y2,'r',x,y,'g')
axis([0 1 1 3.5])
set(gca,'xtick',[0 0.5 1])
set(gca,'xticklabel','0|0.5|1')
set(gca,'ytick',[1 1.5 2 2.5 3 3.5])
set(gca,'yticklabel','1|1.5|2|2.5|3|3.5')
legend('精确解','前向Eula法')
h=0.1;
x=0:0.1:1;
y(1)=1;
y2(1)=1;
for i=1:1:10
k1=x(i)+y(x(i));
k2=(x(i)+h)+(y(x(i))+h*k1);
y(i+1)=y(x(i))+h/2*(k1+k2);
y2(i+1)=2*exp(x(i+1))-1-x(i+1);
end
plot(x,y2,'r',x,y,'g')
axis([0 1 1 3.5])
set(gca,'xtick',[0 0.5 1])
set(gca,'xticklabel','0|0.5|1')
set(gca,'ytick',[1 1.5 2 2.5 3 3.5])
set(gca,'yticklabel','1|1.5|2|2.5|3|3.5')
legend('精确解','前向Eula法')
如果这样写,那么怎么样修改不出现“ Attempted to access y(0); index must be a positive integer or logical.”
题目:用改进欧拉法画dy/dx=x+y,并与精确解y(x)=2e^x-1-x比较
h=0.1;
x=1:1:11;
y(1)=1;
y2(1)=1;
for i=1:1:10
k1=x(i)+y(x(i));
k2=x(i)+h+y(x(i))+h*k1;
y(i+1)=y(x(i))+h/2*(k1+k2);
y2(i+1)=2*exp(x(i+1))-1-x(i+1);
end
plot(x,y2,'r',x,y,'g')
axis([0 1 1 3.5])
set(gca,'xtick',[0 0.5 1])
set(gca,'xticklabel','0|0.5|1')
set(gca,'ytick',[1 1.5 2 2.5 3 3.5])
set(gca,'yticklabel','1|1.5|2|2.5|3|3.5')
legend('精确解','前向Eula法')
h=0.1;
x=0:0.1:1;
y(1)=1;
y2(1)=1;
for i=1:1:10
k1=x(i)+y(x(i));
k2=(x(i)+h)+(y(x(i))+h*k1);
y(i+1)=y(x(i))+h/2*(k1+k2);
y2(i+1)=2*exp(x(i+1))-1-x(i+1);
end
plot(x,y2,'r',x,y,'g')
axis([0 1 1 3.5])
set(gca,'xtick',[0 0.5 1])
set(gca,'xticklabel','0|0.5|1')
set(gca,'ytick',[1 1.5 2 2.5 3 3.5])
set(gca,'yticklabel','1|1.5|2|2.5|3|3.5')
legend('精确解','前向Eula法')
如果这样写,那么怎么样修改不出现“ Attempted to access y(0); index must be a positive integer or logical.”
问题解答:
我来补答展开全文阅读