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

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

总结

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

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

相关内容

  • Word表格怎么转换成文字
  • Word表格转换成文字是一个常见的需求,本文将详细介绍Word表格转换成文字的方法,包括使用复制粘贴和转换为文本功能。我们将会从以下几个方面来讲解:1. 使用复...
  • 2023-11-05 09:54:25

    3

  • word表格总是在下一页
  • Word表格跨页问题是许多写作和编辑中常遇到的一个问题,特别是当您的表格太大而不能适应一页时。这个问题可能令人沮丧,但实际上有许多解决方法来解决它。以下是一些对...
  • 2023-08-17 15:09:25

    7

  • 星愿浏览器怎么设置默认浏览器
  • 随着互联网的发展,现在已经有了很多款浏览器供我们使用,而这些浏览器也在不断地更新和升级。但是有时候我们很难选择一款最适合自己的浏览器,因为有很多浏览器都有各种各...
  • 2023-09-25 15:02:30

    1

  • phpstudy2018怎么访问自己的网站?
  • 使用phpstudy2018来访问自己的网站是一个非常方便的本地开发解决方案。它集成了Apache、MySQL、PHP等常用的Web服务器组件,可以快速搭建一个...
  • 2024-07-28 15:03:18

    2

  • excel柏拉图如何制作
  • 导读:在数据分析中,可视化数据是至关重要的一环。而柏拉图作为一种数据可视化表格,具有良好的可视化效果和易于理解的数据呈现形式。Excel是许多人都熟悉的办公软件...
  • 2024-02-21 11:45:34

    1

  • win10系统便签工具在哪里?
  • Windows 10 系统中的便签工具简介在 Windows 10 系统中,便签工具是一个非常实用的应用程序,它允许用户快速记录和管理各种笔记。无论是工作上的待...
  • 2024-08-25 16:00:23

    1