2010-09-17 26 views
3

我偶然做這個圖在Wolfram Alpha的:如何在代碼中重現像這樣的scribbly模式?

Graph

你可以編寫代碼來製作這種模式的一個更大的版本?

你可以製作類似的圖案嗎?

任何語言的可讀代碼都很好,但是可以在瀏覽器中運行的代碼是最好的(即JavaScript/Canvas)。如果您使用其他語言編寫代碼,請添加屏幕截圖。

注:

  • 對上述圖像輸入公式爲:精氨酸(的sin(x + IY))= SIN ^( - 1)((SQRT(2)COS(X)的sinh(γ ))/ sqrt(cosh(2 y)-cos(2 x)))(link
  • 您不必使用上述公式。任何產生相似結果的東西都會很酷。但是「逆向工程」Wolfram Alpha將是最好的
  • 方程的兩邊是相等的(我認爲),所以WA應該可能只返回'true'而不是圖
  • 該模式可能是舍入錯誤。
  • 我不知道該模式是通過遍歷每個像素還是基於矢量(點和線)生成的。我的猜測是與矢量。
  • 我不知道是什麼導致這種類型的模式('舍入錯誤'是最好的猜測。)
  • IEEE浮點標準並未說明sin或cos等應如何工作,因此trig函數在不同平臺和架構。
  • 沒有布朗運動地塊請

最後,這裏是另一個例子可能在你的任務幫助:(link

Graph 2

+0

只有在x的某些範圍內保持等號的問題似乎與多值函數有關。如果你拿雙方的罪,你的平等無處不在。 – 2010-09-21 00:03:00

回答

3

正如你在任何語言要求外觀類似的模式,在這裏是Mathematica代碼(真的很容易,因爲Wolfram Alpha基於Mathematica)

alt text

編輯

這確實是一個舍入的效果:

如果我們設置:

alt text

做圖

Plot3D[f[x, y], {x, 7, 9}, {y, -8, -9},WorkingPrecision -> MachinePrecision] 

結果是:

alt text

但是,如果我們情節的精度擴大到30個數字:

Plot3D[f[x, y], {x, 7, 9}, {y, -8, -9},WorkingPrecision -> 30] 

我們得到

alt text

和粗糙度消失(這引起你的雜亂的圖案)

順便說一句,你的f [x,y]是一個非常好的函數:

alt text

所以,如果我設法複製您的公式沒有錯誤(這應該算是一個奇蹟),你的等式的兩邊都僅在X一定週期範圍相同,可能是形式的[2 N Pi,(2 n + 1)Pi]

+1

+1和-1:我被誘惑,但認爲它太簡單,太無益。做得好@belisarius爲了大膽地發佈這個。 – 2010-09-17 16:21:16

+0

@高性能標記我只是認爲OP可能從得知該圖是以「ContourPlot [f [x,y] == 0]的形式獲益」,因爲Wolfram Alpha沒有證明......但是。 .. -1 :) – 2010-09-17 16:37:27

+0

不是當我想到的時候:)但它確實有助於澄清事物並確實給出了更好(更大)的模式圖像,所以它仍然值得讚賞。 – Qubei 2010-09-17 22:29:57

相關問題