在Matlab中绘制函数(具有不同x范围的不同方程)

时间:2013-10-11 19:54:27

标签: matlab

我有一个类似于所示功能的功能。即对于不同的x范围,它有不同的形式(我不知道这些函数的数学术语,因此详细说明)

enter image description here

第一个问题是我需要知道如何在matlab中绘制这些函数。 第二个问题是,术语'h'有3个不同的值,我需要在同一个图中为三个不同的'h'绘制三个不同的函数

我如何在MATLAB中执行此操作。我正在使用syms来创建函数定义。感谢。

2 个答案:

答案 0 :(得分:0)

在matlab中实现该函数,使其具有两个参数:x和h(确保使用掩码对其进行矢量化)。然后选择您要在哪个时间间隔内显示该功能,并在该时间间隔内对每个h值进行采样。最后收集矩阵中的所有向量并绘制矩阵。

示意性地:

function res = pbar(x, a, h)
  case1indices=find(x<0);
  case2indices=find(x>=0 && x<a);
  case3indices=find(x>=a);

  res(case1indices) = 0;
  res(case2indices) = 1/a*(1-exp(-x/h));
  res(case2indices) = ...
end

然后:

x = -10:.1:10
allres(:,1) = pbar(x, 2, 1)
allres(:,2) = pbar(x, 2, 2)
allres(:,3) = pbar(x, 2, 3)

plot(allres)

以上内容很可能不正确(现在无法访问Matlab进行测试)但希望有用。

答案 1 :(得分:0)

简单地假设您在三个区间x1,x2,x3上定义了三个函数f1,f2,f3。

然后计算y1,y2,y3(y1 = f1(x1)),y2 = f2(x2)),y3 = f3(x3))。

然后加入它们,即x =(x1,x2,x3)和y =(y1,y2,y3)。

最后绘制y vs x,即绘图(x,y)。

另一种方法是绘制(x1,y1,x2,y2,x3,y3)