MATLAB:在一个图中绘制不同的数值近似

时间:2012-11-12 13:50:06

标签: matlab plot numerical-methods

我有以下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>

2 个答案:

答案 0 :(得分:2)

如果使用hold on命令,这将允许您在同一图上实现多个图。同样,如果您将数据分为xy向量,则可以通过将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元素的矩阵,每个元素都使用单独的颜色绘制。