1

我想绘制一个分段函数,但我不希望出现任何间隙

在关键时刻,例如:

t=[1:8784];

b=(26.045792 + 13.075558*sin(0.0008531214*t - 2.7773943)).*((heaviside(t-2184))-(heaviside(t-7440)));

plot(b,'r','LineWidth', 1.5);grid on

三个区间之间的图中不应出现任何间隙,但确实如此。

我希望图表是连续的,没有间隙。

关于如何实现这一目标的任何建议。

提前致谢。

编辑
实际上,我的目标是在下图中找到以黄色着色的载体功能。我把整个区间分成3个区间:1-常数2-正弦3-常数,然后我想从这三个函数中找到整体函数

替代文字

4

1 回答 1

2

当然也有“差距”。对于所有 t<2184 和所有 t>7440,复合函数均为零。在该区间内,关系只能是非零的。而且您还没有选择端点处为零的函数,那么您怎么能期望没有“间隙”呢?

你的函数在区间的端点取什么值?

>> t = [2184 7440];
>> (26.045792 + 13.075558*sin(0.0008531214*t - 2.7773943))
ans =
       15.689       20.616

所以看看这个的帽子功能部分。我会偷懒并使用ezplot。

>> ezplot(@(t) ((heaviside(t-2184))-(heaviside(t-7440))),[0,8784])

替代文字

现在,结合它,将它乘以一个三角块,当然结果在该域之外同样为零。

>> ezplot(@(t) (26.045792 + 13.075558*sin(0.0008531214*t - 2.7773943)).*((heaviside(t-2184))-(heaviside(t-7440))),[0,8784])

替代文字

但是,如果您的目标是帽子函数中两个选定点的某种连续函数,则您需要选择三角部分,使其在相同的两个点处为零。数学不是拼写为数学。希望你得到一个连续的函数不会做到这一点。

那么,您真正的问题是如何选择该内部部分(段)以使最终结果是连续的?如果是这样,那么我们需要知道您为什么选择其中的任意常数。当然,这些数字 {26.045792, 13.075558, 0.0008531214, 2.7773943} 对你来说一定有一定的意义。如果它们很重要,那么我们怎么可能使结果成为一个连续函数呢?

也许,我只是在这里猜测,你想要一些其他的结果,这样函数在这些界限之外并不完全相同。也许您希望外推为这些点之外的常数函数。但要帮助你,你必须帮助我们。

于 2010-12-31T11:40:42.973 回答