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

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为创建图形的动画效果

总结

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

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。站悠网站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

相关内容

  • 金卡支票打印软件角分的零打不出来怎么办?
  • 金卡支票打印软件在使用时,有时会遇到零角分无法打出来的问题,这给用户的使用带来了极大的不便。本篇文章将针对此问题进行详细分析,并给出相应的解决方法,帮助用户轻松...
  • 2023-08-28 09:46:40

    14

  • CorelDraw X4设计出台历的详细过程
  • 准备工作在设计台历之前,我们需要准备一些基础工作,包括安装和启动CorelDraw X4、收集所需的素材,以及初步规划台历的布局和样式。安装和启动CorelDr...
  • 2024-07-07 13:29:22

    1

  • 在亿方云里分享文件的操作过程介绍
  • 文件上传在亿方云中分享文件的第一步是将文件上传到平台。用户可以通过点击页面上的“上传”按钮,选择需要分享的文件。上传完成后,文件会出现在用户的文件列表中。创建分...
  • 2024-10-27 16:39:40

    1

  • 玩CF时YY语音不能说话怎么回事
  • 在玩CF(穿越火线)游戏时,许多玩家都会使用语音交流工具YY语音,但很多玩家会遇到YY语音突然无法正常使用的情况,无法正常说话或者听到队友的声音,那么这究竟是怎...
  • 2023-09-18 14:27:17

    210

  • upupoo隐藏桌面图标的使用方法
  • 什么是Upupoo?Upupoo是一款流行的动态壁纸软件,它不仅可以为用户提供各种炫酷的动态壁纸,还具有许多实用的桌面管理功能。其中,隐藏桌面图标功能是许多用户...
  • 2024-08-21 16:52:42

    1

  • 格式工厂中设置转换完毕后关闭电脑的操作教程
  • 简介格式工厂是一款功能强大的多媒体文件转换工具,它支持几乎所有的音频、视频和图像格式之间的相互转换。在日常使用中,我们有时候需要设置转换完毕后自动关闭电脑来节省...
  • 2024-11-17 19:32:08

    1