绘制幂级数 gnuplot

Plot power series gnuplot

我想知道如何绘制幂级数(变量为 x),但我什至不知道从哪里开始。 我知道可能无法绘制 infinite 系列,但它也可以绘制第一个 n 项的总和。

我能想到的最简单的方法是生成一个包含一列 x 值和一列 f(x) 值的文件,然后像绘制任何其他图像一样绘制 table数据。幂级数是连续的,因此您只需连接点并获得相当准确的表示(前提是您的点足够靠近)。此外,在评估 f(x) 时,您只需对前 N 项求和(其中 N 足够大)。足够大意味着其余项的总和小于您允许的任何错误。 (*如果你想要 3 个好数字,那么 N 需要足够大,使得剩余的和小于 .001。)

你可以翻出一本calc II教科书来确定如何限制和尾部的误差。很多 calc 类 简要介绍了它,但学生往往觉得误差估计毫无意义(我知道,因为我已经教过几次课程。)例如,如果你有一个交替系列(其项的绝对值正在减少),那么您省略(不求和)的第一项的绝对值是您错误的上限。

*此陈述并非 100% 正确,它略微过于简化,但对于大多数实际用途而言是正确的。

Gnuplot 有一个 sum 函数,可以在 using 语句中使用它来总结几个列或术语。与特殊文件名一起 + 可以实现幂级数。

考虑幂级数的指数函数

\sum_{n=0}^\infty x^n/n!

因此,我们将术语定义为

term(x, n) = x**n/n!

现在我们可以用

绘制直到 n=5 项的幂级数
set xrange [0:4]
term(x, n) = x**n/n!
set samples 20
plot '+' using 1:(sum [n=0:5] term(, n))

要绘制使用 2 到 7 项时的结果并将其与实际的 exp 函数进行比较,请使用

term(x, n) = x**n/n!
set xrange [-2:2]
set samples 41
set key left
plot exp(x), for [i=1:6] '+' using 1:(sum[t=0:i] term(, t)) title sprintf('%d terms', i)