一些数学函数在 GeoGebra 中的实际应用


3.3k 字12 分钟阅读量 评论数
数学

这里的函数有些可能不是最简的,但它反映了思考的过程。对于函数的简化,如果有,则会出现在这里。

前言

曾经我遇到这样一个问题:有一个网站,每天去签到,第一天得 1 分、第二天得 2 分、第三天得 3 分,如此积累到 666 分需要多少天。
当时我想出来一条函数,实际上并不是一条,而是几条函数结合在一起的,算出来的结果大概是一个月,具体的天数我记不清了。
后来,更新了 GeoGebra 导致保存在 GeoGebra 里的函数丢失了,甚至我也想不起来当初的函数是怎么写的,只记得一部分,所以我打算将这些函数记录到这里。我记不住,但互联网有记忆。

函数

函数的绘制软件我推荐 GeoGebra。当然,这个软件还是有槽点的,比如计算的结果通常是小数而不是分数和带根号的数,这样一来有些计算变得麻烦了,不过现在没有更好的软件,有的话请告诉我。
GeoGebra 官网

阅读体验欠佳!
该文章中有二维图像和三维图像导致性能下降。
调整函数后刷新或离开此网页会弹出提示框“可能未保存所做的更改。”,请直接点击“刷新”或“离开”。
手机端如需查看函数图像,请点击全屏按钮。

奇偶判断

实际上方法有不少,这里我使用 sin\sin

查看图像

这个函数会根据输入的 xx 的奇偶,当 xx 为奇数时输出 11,偶数时为 00,一般来讲就是用来乘的。如果需要偶数输出 11 ,奇数输出 00,那么就像 g(x)g\left( x\right) 一样,把整个函数向左平移 n2\dfrac{n}{2} 个单位就好了。
其实这个函数还需要限制 xx 为正整数的,不过这里就不写了,主要是方便后面使用。

正整数相加

这便是我在前言中所说的问题,想了好久想不出来,当初我是用了奇偶判断加其他好几条函数做出来的,那时出来的函数很长,看着图像我猜测是一元二次函数,结果呢…真就是啊。
我已经忘记以前是怎么解的了,那时闲麻烦不想求一元二次方程,虽然现在直接去求一元二次方程了,但心有不甘,还是很想还原出当时写出的式子的。

查看图像

这里的 f(x)f\left( x\right) 是直接带入三个点 (0,0)\left( 0,0\right)(1,1)\left( 1,1\right)(3,6)\left( 3,6\right) 解出来的,后面还带入了其他的点,最终确认了是这个函数。
不过 f(x)f\left( x\right) 只能判断大于 00 的部分,后面的 1-12-23-3…… 只需要把这个函数的正半轴复制并旋转 180180^{\circ } 就行了,也就是 g(x)g\left( x\right)
最后将两者合并得到 q(x)q\left( x\right),这里的 hhpp 这样写是因为有 bug。

至此,这个函数看似已经足够使用了。但是,还有一个问题有待解决,如果我是指定一个范围内的整数相加呢?
其实并不困难,首先定义两个变量,一个是起始,一个是结束,分别为 aabb。此时,aa 必须小于或等于 bb,且 aabb 都为整数。
分五种情况来看:

  1. aa00
    此时就按照原始的函数去计算就行了。
  2. aa 大于 00
    这种情况下,无非是 aba-b,所以也不复杂。
  3. aa 小于 00bb 等于 00
    这种情况也不复杂,直接将 aa 带入到原始公式里就好了
  4. aa 小于 00bb 小于 00
    那么就是 aba-b。抽象一些,直接将 aabb 带入方程,得到两个长度不同的 AABBBB 整一段都是不需要的,而 AA 包含 BB,所以把 AA 里的 BB 去掉就行。
  5. aa 小于 00bb 大于 00
    这时就比较复杂了,根据我们上一种情况的抽象来看,AABB 都需要,所以就是 bab-a

此时不应该直接“综上所述”得到一个多项式,我们再来观察一下。
根据上面的抽象方法,发现了什么没?
那就是当 aa 在正半轴时,aa 的部分是全都不需要的,只有在负半轴时是需要的。而 bb 正好相反过来。
而当 aa 在正半轴时,aa 是正数,负半轴时是负数,负数时是需要的,正数是不需要的,所以我们得到下面的函数 cc

查看图像

这里由于没有 xx 出现,GeoGebra 就没有把它当作一条函数来看待。
不过,GeoGebra 不仅可以渲染平面的图像,还可以渲染立体的图像,让我们来看看。其中 a(x,y)a\left( x,y\right) 是我们要的函数。我还尝试过添加限制 xyx\leq y,不过嘛,效果不怎么样,各位可以把 a(x,y)a\left( x,y\right) 给隐藏了,把 b(x,y)b\left( x,y\right) 显示出来。点击函数左侧的圆就可以隐藏或显示。(疯狂掉帧ing…)

查看图像

抽取种类数

之前各种绕弯,那为什么我没想到阶乘即 n(n1)(n2)(nm+1)n\cdot \left( n-1\right) \cdot \left( n-2\right) \ldots \left( n-m+1\right)

所以现在的情况是两种,有要求顺序和没有要求顺序的。
在下面, mm 是总数, nn 是要抽取的数量。

当有序:

AmnA_{m}^{n}

当无序:

CmnC_{m}^{n}

懒惰促使我努力去寻找偷懒的方法。

mm 个东西里抽取 nn 个东西,不重复抽取,不考虑顺序,求有几种情况。
这个挺麻烦的,一上来就是一条立体函数。不过,我已经有思路了,我们先不要想象什么立体图形,就先想想其中一个平面。
我们假定 mm55nn 作为自变量,然后看看分别会有几种情况。
n=1n=1 时,有 55 种;n=2n=21010n=3n=31010n=4n=455n=5n=511
发现没有,它是对称的,那么又来到求一元二次方程的时候了。
最终的结果是:f(x)=52x2+252x5f\left( x\right) =-\dfrac{5}{2}x^{2}+\dfrac{25}{2}x-5
由于我们要求的是立体函数,光这一条函数可不够用,还需要多几条来观察。
所以我们假定 m=3m=3,所以 g(x)=2x2+8x2g\left( x\right) =-2x^{2}+8x-2
再假定 m=4m=4,所以 h(x)=x2+3x+1h\left( x\right) =-x^{2}+3x+1

查看图像

观察图像,乍一看没什么规律,又好像有点规律,那就是规律了但没完全规律。那就让我来讲讲到底规律了哪里。
首先,我们一直写得都是 ax2+bx+cax^{2}+bx+c,这样写是为了计算起来方便,但我们还是需要把它们都变成 a(xh)2+ka\left( x-h\right) ^{2}+k 这种顶点式。
好,现在来转换一下,得到下面的式子。

p(x)=52(x52)2+858p\left( x\right) =-\dfrac{5}{2}\left( x-\dfrac{5}{2}\right) ^{2}+\dfrac{85}{8}
q(x)=2(x2)2+6q\left( x\right) =-2\left( x-2\right) ^{2}+6
r(x)=(x32)2+134r\left( x\right) =-\left( x-\dfrac{3}{2}\right) ^{2}+\dfrac{13}{4}

然而还是没有什么用。可能是 33 这个数太小了,所以我要尝试一下 66
神奇的事情出现了,到了 66 就出现了不管怎么算都对不上的情况,带入不同的点出现不同的式子…
(思索片刻)
这代表什么?这代表我们一开始的想法就是错的!它根本不是一元二次方程,只是因为前面的数刚好对上罢了。
将所有的点放到 GeoGebra 当中。(看上面的)

再次好好观察…
会发现它的图像更接近于这种。

用板子画的,很难看,见谅

用板子画的,很难看,见谅

看到的第一眼我想到了正态分布。嗯…虽然现在课本上还没讲过正态分布(不知道高二有没有),但我还是可以试一试的。
在百科上看到正态分布的定义后,已经感受到压力了,出现了我从没学过的 exp()\exp \left( \right),看来还要先会 exp()\exp \left( \right)
然后我又想偷懒了,不过还好 GeoGebra 里有“概率模式”,所以我打算尝试一下。

上来就是当头一棒,不仅有正态分布,还有其他的好多种分布,所以我打算利用其中的“二项分布”,看看能不能试出我要的(虽然我也不清楚我到底要什么)。

查看图像

……
似乎我踏入了不应该踏入的领域。但既然来了,肯定要拿什么回去才行。

2021.09.12 更新

硬来不行,决定换一种方法。
那么,首先我们有两个必要的数,总数(total)和抽取量(extract),这两个是我在此处定义的。
总数和抽取量必须为非负整数,且抽取量不得大于总数。

定好限制之后,接下来开始计算有几种可能。
想起在平时我们怎么计算几种的,感觉有点类似冒泡算法,不过这里不需要排序,只需要每个都冒一遍就行了,整个冒的过程还可以简略。

在这里我们再引入一个“指”(point)的概念,即被“指”的需要被计数,粗略做了一个动画便于理解。
WhatIsPoint

WhatIsPoint

在实际操作中,“指”只会指向最后的几个“目标”(target)上,而它将会指向几个,我们可以通过总数减去倒数第二个“指”的未知来得到。
另外,我们还要检查当前“指”的数量,如果只有一个,则“目标”的数量直接统计起来。如果不止一个,我们需要让“指”进入下一层,直到剩余一个“指”才能统计数量。

可能有点过于抽象了,来举个例子。
现在总数定为 44
当抽取量为 11 时,此时抽取量为 11,剩余目标为 44,计算总数为 44
当抽取量为 22 时,此时抽取量不为 11,进入下一层,总数和抽取量各减去 (1)\left( 抽取量 - 1\right),此时抽取量为 11,总数为 33,即第一个总数为 33;回到上一层,此时最后一个指已经到最后一个目标了,因此倒数第二个(即第一个)指向后移动一次,同时最后一个指移动到倒数第二个指的后面一个目标上,此时总数为 33,抽取量为 22,老规矩,总数和抽取量各减去 (1)\left( 抽取量 - 1\right),然后就来到下一层,此时总数为 22,抽取量为 11,即计入总数 22,回到上一层,倒数第二个指向后移动,此时最后一个指无法移动,即倒数第二个指的计算已经结束。
剩下的如此类推……

将上面的用数字表示,0 是未被指向的目标,1 是被指向的目标,即:

plaintext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
4 > 1
1000
0100
0010
0001

4 > 2
1100
1010
1001
0110
0101
0011

4 > 3
1110
1101
1011
0111

4 > 4
1111

目前的思路到了这了,还在想怎么写成函数。

椭圆截线中点

这标题也太奇怪了吧……好吧,只是我想不出干练的标题罢了。

已知椭圆方程椭圆截得直线线段中点坐标直线方程中的任意两个、就可以求出另外一个

要求与参数:

  • 椭圆方程为:x2a2+y2b2=1\dfrac{x^{2}}{a^{2}}+\dfrac{y^{2}}{b^{2}}=1
  • 中点坐标:(x0,y0)\left( x_{0},y_{0}\right)
  • 直线方程(点斜式):(yy0)=k(xx0)\left( y-y_{0}\right) =k\left( x-x_{0}\right)

这原本是上课时老师在讲一道例题:已知椭圆方程椭圆截得直线线段中点坐标,求直线方程
当时看到老师的推理,我想着这应该可以化成一条式子吧,然后就去试了,具体的推理过程晚点放上来。

(yy0)=bax0y0(xx0)\left( y-y_{0}\right) =-\dfrac{b}{a}\cdot \dfrac{x_{0}}{y_{0}}\cdot \left( x-x_{0}\right)

其中,k=bax0y0k=-\dfrac{b}{a}\cdot \dfrac{x_{0}}{y_{0}}

相关推荐