geogebra绘制周期类函数

数学绘图是一种可以复制的艺术
数学功底决定绘图造诣

返回首页

需要绘制如下函数
f(x)={x2,x(a,b)2f(xb+a)3else f(x)= \begin{cases} x^2, & x\in (a,b) \\ 2f(x-b+a) - 3& \text{else} \end{cases}
效果预览

可以点击图形,滚动鼠标滑轮看看效果

GeoGebra简介

GeoGebra(音译:几何不难)
是数形结合的神器,个人使用完全免费,并且可跨平台使用

官网https://www.geogebra.org/
经典版本下载 http://download.geogebra.org/installers/5.0/
跨平台的网页版说明
https://wiki.geogebra.org/en/Reference:GeoGebra_Apps_Embedding
跨平台的网页版下载
https://download.geogebra.org/package/geogebra-math-apps-bundle

抽象类型函数详解

周期函数

已知g(x)=x2g(x)=x^2x(a,b)x\in (a,b),要求绘制如下周期函数
f(x)={g(x),x(a,b)f(xb+a)else(1)\tag{1} f(x)= \begin{cases} g(x), & x\in (a,b) \\ f(x-b+a) & \text{else} \end{cases}

绘制上述类型周期函数f(x)f(x)的本质是要找到一个函数

u(x)={x,x(a,b)u(xb+a)else(2)\tag{2} u(x)= \begin{cases} x, & x\in (a,b) \\ u(x-b+a) & \text{else} \end{cases}

很容易验证关系式f(x)=g(u(x))f(x) = g(u(x)),于是我们可以把求(1)式中的f(x)f(x)归结于求(2)式中的u(x)u(x)

我们可以利用三角函数周期性,直接给出u(x)u(x)的表达式。

先定义线性变换h(x)=2xbabah(x)=\dfrac{2x-b-a}{b-a}

给出其逆变换h1(x)=ba2x+b+a2h^{-1}(x)=\dfrac{b-a}{2}x +\dfrac{b+a}{2}

很显然函数u1(x)=2πtan1[tan(π2h(x))]u_1(x)=\dfrac{2}{\pi} \cdot \tan^{-1}\left[\tan\left(\dfrac{\pi}{2} \cdot h(x)\right)\right]是一个周期为bab-a的间断函数,且在区间(a,b)(a,b)上是一次函数,值域为(1,1)(-1,1),最后再用一次线性变换,就可以得到(2)式中的u(x)u(x)的表达式,即

u(x)=h1[u1(x)] u(x) = h^{-1}[u_1(x)]

u(x)=h1{2πtan1[tan(π2h(x))]} u(x)=h^{-1}\left\{\dfrac{2}{\pi} \cdot \tan^{-1}\left[\tan\left(\dfrac{\pi}{2} \cdot h(x)\right)\right]\right\}

更具体一点为

u(x)=b+a2+baπtan1[tan(π22xbaba)] u(x) = \dfrac{b+a}{2} + \dfrac{b-a}{\pi}\cdot \tan^{-1}\left[\tan\left(\dfrac{\pi}{2} \cdot\dfrac{2x-b-a}{b-a}\right)\right]

有了u(x)u(x)的表达式之后,我们可以把(1)式中的f(x)f(x)u(x)u(x)表示出来,即

geogebra代码

a = -1
b= 1
g(x)=x^2
u(x) =0.5*(a+b) + (b-a)/pi*atan(tan((2*x - a - b)*0.5*pi/(b-a)))
f(x) = g(u(x))

视频教程如下

注:周期函数也可以用下面递归类型的方法去绘制

线性周期递归函数

已知g(x)=x2g(x)=x^2x(a,b)x\in (a,b)p(x)p(x)为实数R\mathbb R上的一次函数,要求绘制如下周期递归函数
r(x)={g(x),x(a,b)p[r(xb+a)]else r(x)= \begin{cases} g(x), & x\in (a,b) \\ p\left[r(x-b+a) \right]& \text{else} \end{cases}

根据r(x)r(x)的定义有
r(x)={g(x),x(a,b)p1[r(x+ba)]else r(x)= \begin{cases} g(x), & x\in (a,b) \\ p^{-1}\left[r(x+b-a) \right]& \text{else} \end{cases}

p(x)=2xp(x)=2x为例:

先考虑阶跃函数

J(x)=xu(x)ba(3)\tag{3} J(x) = \dfrac{x-u(x)}{b-a}
其中u(x)u(x)由(2)给出,于是有

r(x)=2J(x)g(u(x)) r(x) = 2^{J(x)} g(u(x))
geogebra代码

a = -1
b= 1
g(x)=x^2
u(x) =0.5*(a+b) + (b-a)/pi*atan(tan((2*x - a - b)*0.5*pi/(b-a)))
j(x) = (x-u(x))/(b-a)
r(x)=2^(j(x))g(u(x))

当然也可以用取整函数[x][x]去定义u(x)u(x)J(x)J(x)[x][x]是一个整数,且满足x1[x]xx-1\leq[x]\leq x,例如[1.2]=1[1.2]=1。于是有

J(x)=[xaba]J(x)=[\dfrac{x-a}{b-a}]

u(x)=xJ(x)(ba)u(x) = x-J(x)(b-a)

j(x) = floor((x-a)/(b-a))
u(x) = x - j(x)*(b-a)

替换成上面的geogebra代码,效果是一样的

其它方法

应当指出,直接法与迭代法本质是一样的,因此它们都有缺陷:

因此对于线性周期递归函数的绘图,强烈推荐第一种方法。应该清楚,本教程给出了相关数学公式,这意味着周期函数和线性周期递归函数可以直接用初等函数表示出来,并且运用本教程的公式,可以很容易在别的绘图软件上绘图。

线性周期递归一般格式

先探究线性递归的本质

p(x)=kx+bp(x)=kx+b,有p1(x)=(xb)/kp^{-1}(x)=(x-b)/k

nZn\in \mathbb Z,记 Ln(x)=p(Ln1(x))L_n(x)=p(L_{n-1}(x))L0(x)=xL_0(x)=x.

不难算出

Ln(x)=knx+b(1+k1+k2++kn1),n>0L_n(x) = k^nx + b(1+k^{1} + k^{2} + \cdots + k^{n-1}), n>0

Ln(x)=knxb(k1+k2++kn),n<0L_n(x)=k^{n}x - b(k^{-1} + k^{-2} + \cdots + k^n ),n<0

上面的两种情形可统一起来

注:整个格式的推导,和数列的处理方式一致!

也就是线性递归的本质都体现在Ln(x)L_n(x)身上, 因此有

r(x)={g(u(x))+bJ(x),k=1,kJ(x)g(u(x))+b1kJ(x)1k,k1. r(x) = \begin{cases} g(u(x)) + b J(x) , & k=1,\\ k^{J(x)} g(u(x))+ b\dfrac{1-k^{J(x)}}{1-k}, & k\neq 1. \end{cases}

其中,u(x)u(x)由(2)给出,J(x)J(x)由(3)给出。

例如:p(x)=2x3p(x)=2x-3

r(x)={g(x),x(a,b)2r(xb+a)3else r(x)= \begin{cases} g(x), & x\in (a,b) \\ 2r(x-b+a) - 3& \text{else} \end{cases}

r(x)=2J(x)g(u(x))+3(12J(x))r(x) = 2^{J(x)} g(u(x)) +3(1- 2^{J(x)})

geogebra代码

a = -1
b= 1
g(x)=x^2
u(x) =0.5*(a+b) + (b-a)/pi*atan(tan((2*x - a - b)*0.5*pi/(b-a)))
j(x) = (x-u(x))/(b-a)
r(x) = 2^(j(x))g(u(x)) + 3(1-2^(j(x)))

a = -1
b= 1
g(x)=x^2
j(x) = floor((x-a)/(b-a))
u(x) = x - j(x)*(b-a)
r(x) = 2^(j(x))g(u(x)) + 3(1-2^(j(x)))

当然也可以用直接法或者迭代法,但那都是没有灵魂的数学绘图

学习了这么多,不妨在线试试
https://kz16.top/geogebra/
如果懒得一行行输入代码
可以创建一个按钮,在按钮中一次性粘贴代码块,最后点击创建好按钮即可一次性画好图。

温故知新

通过本次教程,学到了不少知识:

返回首页

首页地址: https://kz16.top/geogebra
本文来源: https://kz16.top/geogebra/fT

欢迎转载,转载请指明来源,请勿用于商业

2019-11-02,作者:Zhou Bingzhen

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