用gnuplot不准确地绘制分段线性函数

时间:2018-06-15 14:08:22

标签: gnuplot

当使用gnuplot绘制分段线性函数h(x)= max(0,1-x |)(hat函数)时出现问题。我的目标是展示使用这些帽函数作为基函数的多项式的插值。因此,我需要将它们移动并缩放到不同的网格点。

我的代码如下所示:

set key inside bottom right
set xrange [0:1]
set yrange [0:6]
set grid xtics
set style line 1 linecolor rgb '#0060ad' linetype 1 linewidth 2
set ytics 1
set xtics 2**(-3)
set key right top
s(x) = (3.0 * x - 1)
a0 = 2
a1 = -6
a2 = 5
a3 = 5
a4 = -5
a5 = 1
f(x) = a0 + a1*s(x) + a2*(s(x)**2) + a3*(s(x)**3) + a4*(s(x)**4) + a5*(s(x)**5)
max(x, y) = (x > y) ? x:y
h(x) = max(0, 1 - abs(x))
nodal(x, i)=h(2**(3)*x - i) * f(i * 2**(-3))

plot f(x) title "f(x)", nodal(x, 1)

输出看起来像这样: Plot of the polynomial and one nodal basis function

显然,对于节点基函数不可微分的点,它无法很好地绘制函数,这看起来很糟糕。因为我想要包括这个我必须提交的论文,所以我不能包含这些内容。有没有解决这个问题的方法?

0 个答案:

没有答案