图形计算器:如何找到要显示的图形的适当部分

|| 我正在一个图形计算器上工作(您知道,在其中键入公式的地方,假设x ^ 2并得到该函数的图形)。我遇到的问题是如何偏移和缩放图形视图以显示功能的有趣部分。 我已经用尽了所有的“简单”想法。让我展示一些例子: -sin(x)=>有趣的部分在y = [-1,1]和偏移量(0,0)之间 -x ^ 2 =>有趣的部分在y = [0,100]和偏移量是(0,0)之间。 (已任意选择100个) -100x ^ 2-10000 => y = [-10000,100 *]并且偏移量是(-10000,0) 我想我可以为每种类型的函数分配一个\'range \'和\'offset \'并创建一些数学运算以将这些范围相加/相乘/等,以相同的方式计算结果。但是,这需要“创造”一些数学运算,而隐藏逻辑缺陷的可能性过高。 必须有一种不太困难的方式来执行此操作,但我只是找不到它。是否有一些要搜索的特定字词?有算法的指针吗?     
已邀请:
多么有趣的问题。我从没考虑过,但首先要找到: 等式的两个根最接近原点(可以使用牛顿-拉夫森算法)。 最大值和最小值。为此,您需要找到函数的导数为0的位置。您可以进行数值微分,并大致找到导数与0交叉的点,或者,如果您有雄心勃勃,则可以使用自动微分。找到导数的零交叉点后,返回并在这些点处评估原始方程。 在每个x轴点处的函数值。 然后将每个轴上最远的点相加,将它们相加10%,并将它们用作边界框坐标。 边缘情况很明显:该函数可能没有根,一个或无限多个根。该功能可能没有最大值或最小值。我不太确定如何检测到这些情况,但是您可能希望对步骤(1)和(2)建立限制,例如查找从N开始的前N个根或前N个极值。限制可能是确保您在一个轴上的偏移量不超过另一轴上偏移量的N倍。     
最常见图形的两个有趣的点是坐标系的原点(用于定向)和该函数的y截距,该值易于计算。因此,我将选择比例,以使原点(0,0)和y截距(0,y0)都可见,外加一些填充,即间隔[-y0-y0 / 5; y0 + y0 / 5]。如果原点和y轴截距碰巧接近或什至相同,我将选择可见的间隔,例如[-5; 5]。 这背后的基本原理是,一个结构良好的函数应该将其有趣的部分放在原点附近,或者至少在y轴截距附近。如果没有,您根本无法分辨用户想要看到的内容,因此他应该自己照顾自己。     
有趣区域的可能定义之一是以下点的密度: f(x)= 0(穿越x-zxis) f \'(x)= 0(最小/最大) f \'\'(x)= 0(曲率变化的方向) f \'\'\'(x)= 0(最大曲率,可能最小曲率可能不太有趣)     

要回复问题请先登录注册