几何画板怎么给函数单调区间分色

1. 几何画板

几何画板可以用于在平面直角坐标系中绘制图形以及在图形上标注文字并进行简单的交互操作。下面是在几何画板上绘制函数$y=2x+1$的代码:

from sympy import *

几何画板怎么给函数单调区间分色

from manim import *

init_printing()

class PlotFunction(GraphScene, MovingCameraScene):

CONFIG = {

"y_max": 5,

}

def construct(self):

self.x_max = 3*self.y_max/self.aspect_ratio

self.setup_axes(animate=True)

func_graph=self.get_graph(lambda x:2*x+1,self.function_color)

self.play(ShowCreation(func_graph))

self.wait()

代码解释:

GraphScene是manim库中用于绘制函数图像的场景之一,继承了Scene类中的所有属性和方法

MovingCameraScene是用于实现场景可视区域平移和缩放的场景之一,可以使得观众关注到关键部分

setup_axes是用于在场景中绘制直角坐标系的方法,其中y_max属性控制y轴最大值,x_max属性通过y_max属性和aspect_ratio属性自动计算得到

get_graph是用于绘制函数图像的方法,第一个参数为要绘制的函数表达式,第二个参数为函数图像的颜色

ShowCreation是用于动态显示图形的动画效果,将在屏幕上逐渐显示函数图像

wait是用于暂停场景的方法,可以等待观众看完目前显示的图形后再进行下一步操作

2. 函数单调性判断

2.1 函数单调性定义

在介绍如何进行区间分色之前,我们需要首先了解什么是函数的单调性。

函数$f(x)$在区间$[a,b]$上单调递增,是指对于该区间内的任意两个数$x_1$和$x_2(x_1

函数$f(x)$在区间$[a,b]$上单调递减,是指对于该区间内的任意两个数$x_1$和$x_2(x_1

2.2 函数单调性判断方法

判断函数在某个区间内的单调性有两种方法:

计算函数在该区间内的导数,如果导数恒大于零或恒小于零,则该函数在该区间内单调递增或单调递减

比较函数在该区间内相邻两点的取值,如果取值逐渐增大或逐渐减小,则该函数在该区间内单调递增或单调递减

3. 函数区间分色

通过以上方法可以得出某个函数在某个区间内的单调性,接下来我们需要将该区间分成多个颜色块,以便更加清晰地展示函数的单调性。这里以函数在区间$[a,b]$内单调递增为例,展示如何进行区间分色。

3.1 区间等分

首先需要将区间$[a,b]$等分为$n$段,其中$n$为正整数,若令$x_0=a$,$x_n=b$,则$x_0

代码如下:

a=0

b=10

n=5

step=(b-a)/n

xs=[a+i*step for i in range(n+1)]

ys=[]

代码解释:

a和b为分割区间的左右端点,可以根据具体需求进行修改

n为分割区间的段数,可以根据具体需求进行修改

step为每段区间的长度

xs为分割后的区间列表,存储每段区间的左右端点

ys为每段区间的颜色编号列表,先设置为空列表

3.2 计算函数取值

接下来需要计算函数在每段区间内的取值,以便进行比较和区间分色。对于每段区间$[x_i,x_{i+1}]$,计算该区间内的取值$f(x)$($x$为某一实数),取其中的最小值$f_{min}$和最大值$f_{max}$,再计算该区间的颜色编号$color$,该编号表示对该区间的取值进行分段,并为每一段分配一个颜色。

为了简单起见,这里假设颜色编号为$0,1,2,\ldots,k$,其中$k$为正整数,每个颜色所对应的取值范围相等且只与$k$有关。举个例子,如果$k=3$,则颜色$0$表示取值为$[f_{min},f_{min}+(f_{max}-f_{min})/3]$的区间,颜色$1$表示取值为$(f_{min}+(f_{max}-f_{min})/3,f_{min}+2(f_{max}-f_{min})/3]$的区间,颜色$2$表示取值为$(f_{min}+2(f_{max}-f_{min})/3,f_{max}]$的区间。这里用二分法实现。

代码如下:

from scipy.optimize import minimize_scalar

for i in range(n):

x0=xs[i]

x1=xs[i+1]

res=minimize_scalar(lambda x:2*x+1,bounds=(x0,x1),method='bounded')

y=res.fun

ys.append(int((y-f_min)/(f_max-f_min)*k))

代码解释:

minimize_scalar是scipy库中用于单变量函数最小化的函数,第一个参数为待最小化的函数表达式,bounds参数为变量取值范围,method参数为求解方法

y为函数在当前区间的最小值,这里以$2x+1$为例

int((y-f_min)/(f_max-f_min)*k)为根据函数取值计算出的区间颜色编号

3.3 区间绘制

最后将每段区间按照计算出的颜色编号绘制出来,可以用manim库中的Rectangle对象进行绘制。针对不同的颜色,可以设置不同的填充颜色。

代码如下:

colors=['#FF8C00','#008080','#0000FF']

rects=[]

for i in range(n):

rect=Rectangle(height=2,width=xs[i+1]-xs[i],fill_opacity=1)

rect.move_to([xs[i]+rect.get_width()/2,ys[i]+rect.get_height()/2,0])

rect.set_fill(colors[ys[i]],1)

rects.append(rect)

self.play(*[Create(rect) for rect in rects])

self.wait()

代码解释:

colors为不同区间颜色代码列表

Rectangle为manim库中的矩形对象,其中fill_opacity属性为填充透明度,1表示完全填充,0表示不填充

move_to方法为将图形移动至指定位置,参数为坐标

set_fill方法为设置填充颜色,第一个参数为颜色代码,第二个参数为透明度

Create为创建图形的动画效果

总结

通过以上步骤,就可以在几何画板上实现对函数单调区间的分色了。首先需要通过计算区间内的函数取值,判断该区间的单调性,然后将该区间分成若干个颜色块,并为每个块指定颜色。这里仅提供了一种较为简单的区间分色方法,如需更加精细的区间分色效果,可以适当进行修改和拓展。

相关内容

  • 几何画板使用椭圆第二定义使用方法
  • 几何画板简介几何画板是一款强大的数学绘图软件,广泛应用于几何、代数和微积分等数学教学和研究中。它不仅可以帮助用户进行图形绘制和动态演示,还可以用来探索数学概念和...
  • 2024-10-09 10:45:35

    1

  • XY苹果助手备份应用数据的操作教程
  • 了解XY苹果助手在苹果设备上,备份应用数据是一项非常重要的任务。XY苹果助手是一款强大的工具,它可以帮助用户轻松地备份苹果设备上的应用数据。这篇文章将详细介绍如...
  • 2024-09-20 15:42:30

    1

  • Edge浏览器打开提示没有注册类的处理方法
  • 介绍在使用Edge浏览器时,有时可能会遇到一个常见的错误提示:"没有注册类"。这个错误可能会阻止浏览器正常启动或运行,影响您的上网体验。本文将详细介绍导致这一问...
  • 2024-07-09 10:59:46

    1

  • Win11必须更新才能关机怎么办
  • Win11作为新一代操作系统,对于许多人来说都是全新的使用体验,但是在使用过程中,可能会出现一些问题,比如必须更新才能关机的问题,这对于很多用户来说是非常困扰的...
  • 2023-11-17 16:31:56

    58

  • Microsoft Office 2003出现文档乱码的处理方法
  • 文档乱码的常见原因在使用Microsoft Office 2003时,有时会遇到文档出现乱码的情况。这种问题可能会影响工作效率和文档的可读性。导致文档乱码的原因...
  • 2024-07-19 18:17:55

    2

  • 英雄联盟官方助手怎么录制英雄时刻
  • 在英雄联盟游戏中,录制精彩时刻是每个玩家的心愿。英雄联盟官方助手提供了方便快捷的录制功能,让你无需另外下载录屏软件就能录制你的操作和瞬间,本文将为大家详细介绍英...
  • 2023-09-04 11:43:58

    9