使用普通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
你的数据是什么?一个函数,你试图代表或云点? –