點函數f我有值多項式內插在使用Java
x = 0 => y = 0
x = 1 => y = 1
x = 3 => y = 27
x = 4 => y = 64
我想用JAVA創建函數x^3創建一個多項式函數。程序應該創建函數並顯示它,如果我給出任何值,它應該計算插值。我創建了一個只使用Aitken生成值的函數,但它不產生函數,而且很難理解如何執行該函數。因爲我不知道如何把X值作爲X在Java程序中。
點函數f我有值多項式內插在使用Java
x = 0 => y = 0
x = 1 => y = 1
x = 3 => y = 27
x = 4 => y = 64
我想用JAVA創建函數x^3創建一個多項式函數。程序應該創建函數並顯示它,如果我給出任何值,它應該計算插值。我創建了一個只使用Aitken生成值的函數,但它不產生函數,而且很難理解如何執行該函數。因爲我不知道如何把X值作爲X在Java程序中。
我具有值x = 0 => Y = 0,X = 1 => Y = 1×= 2 => Y = 27 X = 3 => Y = 64
這是一個奇數的方式來列表點。
太糟糕了,他們不是y = x^3的一部分。它們是:
(x,y)= {(0,0),(1,1),(2,8),(3,27),(4,64),(5,125)。 ..}
更新:
我會用不同的方式說出你的問題。你的「示例」一組點是不正確的和誤導的。這聽起來像是你真的在說:「我有一組隨意的點,我想爲它們裝上一個功能。」
如果您知道您需要的函數形式,則問題僅僅是計算未知係數。如果你有多少點可以解決他們(如果有解決方案)。如果你有更多的分數比係數,你可以做最小二乘擬合。
但是,這一切都取決於事先知道你想要什麼功能。
要求計算機爲您找出最佳形式和係數值是一項艱鉅的任務。
你當然可以在點之間使用拉格朗日插值,但它仍然可能不是告訴你什麼是「最好」的函數來表示你的點。它採用多項式形式,所以在其他函數中混合不是該方法的一部分。它可以給你一個非常好的代表sin(x),但它不會出來告訴你,正弦函數比多項式近似更容易理解。
假設你有4對(x,y)點。考慮方程a0 + a1 * x + a2 * x^2 + a3 * x^3 = y。放4對(x,y),你有4個線性方程組成4個變量。使用矩陣解算器或編寫自己的解決方案(a0 ... a3)。現在你可以有一個方法內插(double x){return a0 * x + a1 * x * x + a2 * x^2 + a3 * x^3; }。希望有所幫助。
「我創建了一個只產生值的函數......」 - 這是什麼意思?這是否意味着你有係數? 「程序應該創建該功能並顯示它。」 - 這是什麼意思?你的程序需要繪製它? – anon 2011-02-12 04:06:52
不,我需要的是由java函數生成的函數x^3。所以程序的輸出是x^3 – 2011-02-12 04:43:52
我的程序輸入是double xi [] = {-15,0,15,30,};雙fi [] = {-0。24913878,0,0.221456693,0.415231299};任何數組。所以程序應該產生相關的多項式函數。 – 2011-02-12 04:50:32