我不小心用 wolfram alpha 制作了这张图:
你能编写代码来生成此模式的放大版本吗?
你能做出看起来相似的图案吗?
任何语言的可读代码都很好,但最好是可以在浏览器中运行的代码(即 JavaScript/Canvas)。如果您使用其他语言编写代码,请附上屏幕截图。
注意事项:
- 上图的输入公式为:arg(sin(x+iy)) = sin^(-1)((sqrt(2) cos(x) sinh(y))/sqrt(cosh(2 y )-cos(2 x))) ( link )
- 您不必使用上述公式。任何产生类似结果的东西都会很酷。但“逆向工程”Wolfram Alpha 是最好的
- 等式的两边相等(我认为),所以 WA 应该只返回“true”而不是图表
- 该模式可能是舍入误差的结果。
- 我不知道图案是通过遍历每个像素生成的,还是基于矢量(点和线)生成的。我猜是矢量。
- 我不知道是什么导致了这种模式(“舍入误差”是最好的猜测。)
- IEEE 浮点标准没有说明 sin 或 cos 等应该如何工作,因此三角函数因平台和架构而异。
- 请不要使用布朗运动图
最后,这是另一个可能有助于您完成任务的示例:( link )
最佳答案
当您在任何语言中询问相似的外观模式时,这里是 Mathematica 代码(非常简单,因为 Wolfram Alpha 基于 Mathematica)
编辑
确实是舍入效应:
如果我们设置:
然后画个图
Plot3D[f[x, y], {x, 7, 9}, {y, -8, -9},WorkingPrecision -> MachinePrecision]
结果是:
但是如果我们将绘图的精度扩展到 30 位数字:
Plot3D[f[x, y], {x, 7, 9}, {y, -8, -9},WorkingPrecision -> 30]
我们得到
粗糙度消失了(这导致了你的潦草图案)
顺便说一句,你的 f[x,y] 是一个非常好的函数:
因此,如果我设法无误地复制您的公式(这应该被认为是一个奇迹),您的等式两边仅在 x 的某些周期范围内相等,可能是 [2 n Pi, (2 n + 1) π]
关于language-agnostic - 如何在代码中重现这样的潦草图案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736261/