gpt4 book ai didi

java - 检测图中的奇点

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:00:54 27 4
gpt4 key购买 nike

我正在用 Java 创建一个图形计算器作为我的编程类(class)的一个项目。这个计算器有两个主要组成部分:图形本身,它绘制线条,以及方程式计算器,它将一个方程式作为 String 并......好吧,计算它。

为了创建直线,我创建了一个 Path2D.Double 实例,并循环遍历直线上的点。为此,我计算与图形宽度一样多的点(例如,如果图形本身的宽度为 500 像素,我计算 500 个点),然后将其缩放到图形的窗口。

现在,这适用于大多数线路。但是,在处理 singularities 时不会.

如果在计算点时,图形遇到域错误(例如 1/0),图形将关闭 Path2D.Double 实例中的形状并开始新的一行,以便线在数学上看起来是正确的。示例:

Good Asymptote
(来源:imagesocket.com)

但是,由于它的缩放方式,有时它会正确呈现,有时则不会。如果不是,则显示实际的渐近线,因为在这 500 个点内,它跳过了等式 1/(x-2) 中的 x = 2.0,并且只有 x = 1.98x = 2.04,它们在该等式中完全有效。示例:

Bag Asymptote
(来源:imagesocket.com)

那样的话,我就把左右的窗口各增加了一个单位。

我的问题是:有没有一种方法可以使用这种缩放方法来处理奇点,从而使生成的线看起来在数学上是正确的?

我自己想过实现一个二进制搜索式的方法,如果它发现它计算了一个点,然后下一个点离最后一个点很远,它会在这些点之间搜索一个域错误。然而,我很难弄清楚如何让它在实践中发挥作用。

感谢您提供的任何帮助!

最佳答案

您可以使用区间算法 ( http://en.wikipedia.org/wiki/Interval_arithmetic ) 并在每个区间 [x(i), x(i+1)] 上计算函数的区间。如果生成的间隔是无限的,则跳过该线段。在速度方面,这应该只比评估函数慢几倍。

关于java - 检测图中的奇点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2397520/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com