使用普通LSM(最小二乘法)解決方程組(多項式10度)的數值問題。我獲得了具有巨大和非常小的值的參數 - 因此我無法在此方法中構建逆矩陣 - 即使在擴展變量中精度也很低。我試圖在C++,Matlab,Delphi中做到這一點。 有人可以知道應用儀器,我可以用足夠的準確性或數字提示做到這一點,並獲得良好效果。矩陣的標準計算是不幸難以捉摸的。使用10次多項式解決方程組,LSM
0
A
回答
1
我覺得你的問題來自於一個事實,即使用的是第10次多項式,這往往導致數值問題:
所有的- 首先,他們可以因爲大振盪是不合適的。即使內插一個簡單的功能,這些振盪也可以出現,請參閱着名的Runge's example。其次,高階多項式的擬合可以導致山形線性系統,這就是爲什麼你不能反轉矩陣(你應該反過來不這樣做)。我做了一個簡單的實驗:我取11個等距點(在區間[0,1]上)並組裝線性系統的矩陣來求解。 Matlab給我一個約爲1e8的condition number,所以最小二乘矩陣的條件數爲1e16。所以你的矩陣'接近單數',這意味着所有的數值精度都會丟失。
所以,擺脫你的問題的最好方法是擺脫10階多項式。您應該考慮低階多項式,樣條或分段多項式近似。
如果您確實需要10階多項式(例如,如果您知道您的數據是由這樣的多項式生成的),則不要反轉矩陣。使用一個好的預處理器和一個迭代方法來解決這個系統而不需要反轉矩陣。
+0
謝謝你的回答。 – Artik
相關問題
- 1. 使用javascript解決多項式方程
- 2. 求解多項式方程組
- 3. 使用Python解決五階多項式
- 4. 解決二次方程Prolog
- 5. C++:解決三次方程
- 6. 解決三次方程
- 7. 解決多項式強度映射的三階多項式方程
- 8. 多元三次方程組可以在多項式時間內求解嗎?
- 9. 如何使用Java解決方程式?
- 10. 是否可以在模板項目/解決方案中多次使用項目?
- 11. 解決方法在IE 10
- 12. Javascript:解決方程組
- 13. 解決二次方程的C程序
- 14. 多線程解決方案
- 15. 解決二次方程使用方法,java
- 16. 用C++解決這個二次方程式
- 17. 8次多項式方程組3的系統的實根
- 18. 二次公式解決方案問題
- 19. 在Visual Studio中使用多個項目/解決方案的最佳方式?
- 20. 在Python中求解多項式方程
- 21. 數值求解非多項式方程
- 22. 我如何解決在C + +中的五次多項式
- 23. 解二次方程式
- 24. 用於多維數組的Mongoose模式解決方法
- 25. 在序言中解決二次方程
- 26. sympy:從解決二次方程
- 27. 使用鏈接列表求解多項式方程
- 28. 使用matlab重構多項式方程
- 29. C# - 將多項目解決方案轉換爲1-1項目解決方案
- 30. 使用Python/Scipy爲一組測量解決方程組
你的問題是關於使用最小二乘法擬合一個給定數據的10階多項式嗎?你有沒有嘗試用低階多項式來使用你的代碼?它工作嗎?你有同樣的問題嗎? –
具有較低階多項式的代碼工作正常。但我必須使用更復雜的功能模型,因此我嘗試使用10階多項式。 – Artik
你的數據是什麼?一個函數,你試圖代表或雲點? –