1

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

在此处输入图像描述

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

我怎么能在 MATLAB 中做到这一点。我正在使用 syms 创建函数定义。谢谢。

4

2 回答 2

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 即 plot(x,y)。

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

于 2014-11-23T18:03:20.343 回答
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 进行测试)但希望有用。

于 2013-10-11T20:12:23.903 回答