我有以下matlab代码,用于通过欧拉方法逼近微分方程:
% Eulermethod
a=0;
b=0.6;
Steps=6;
dt=(b-a)/Steps;
x=zeros(Steps+1,1);
x(1,1)=1;
y=zeros(Steps+1,1);
for i=1:Steps
x(i+1,1)=x(i,1)+dt*(x(i,1)*x(i,1)+1);
end
plot(x)
我希望能够在一个图中为几个不同的步骤值绘制解决方案图,并使x轴从0到0.6而不是从例如1到100 000等。可以这样做吗?< / p>
答案 0 :(得分:2)
如果使用hold on
命令,这将允许您在同一图上实现多个图。同样,如果您将数据分为x
和y
向量,则可以通过将2个向量传递给plot
而不是仅一个向量来相互映射它们。例如
figure
hold on
for i=1:m
x = [];
y = [];
%% code to populate your vectors
plot(x,y)
end
你现在应该在同一个数字上同时看到你所有的情节。如果您希望x
由0到0.6之间的n
等间距元素组成,则可以使用linspace
命令:
x = linspace(0.0,0.6,n);
为了区分您的情节,您可以将额外的参数传递给该函数。例如
plot(x,y,'r+')
将数据绘制为一系列红色+
符号。
答案 1 :(得分:0)
Plot可以采用更多参数:plot(x_axis,values, modifiers ); 如果 x轴是M个元素的向量,则值可以是MxN元素的矩阵,每个元素都使用单独的颜色绘制。