Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-03-24, 11:45   #2
云龙九现
初级会员
 
注册日期: 2009-03-20
年龄: 42
帖子: 26
声望力: 17
云龙九现 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

我看了一下,你这个最低有2次幂,最高有16次幂
可能用ployfit命令有些慢和浪费,但可能准确度要高些
如果你的x,z的值能够有8组或者比8组多的话,那就自己来编吧!
将系数当做是未知数,解一个8元方程,这个8元方程的解就是系数的值。
设系数为a1,a2,....a8.
已知的8组值为(x1,z1),(x2,z2)....(x8,z8)
那么可以得到如下方程
a1*(x1).^2+a2*(x1).^4+a3*(x1).^6+...+a8*(x1).^16=z1
a1*(x2).^2+a2*(x2).^4+a3*(x2).^6+...+a8*(x2).^16=z2
...
a1*(x8).^2+a2*(x8).^4+a3*(x8).^6+...+a8*(x8).^16=z8
用矩阵表示就是
A*B=C
其中A=[a1 a2 a3 a4 a5 a6 a7 a8]
C=[z1,z2,z3,z4,z5,z6,z7,z8]
关于矩阵B,是一个8*8阶的矩阵,其对应的行列式是一个范德蒙行列式,有现成的计算公式,你上网就可以查到了。
我相信你对matlab求解矩阵方程的命令应该不陌生吧!由于matlab中关于基于不同方法的矩阵求解的命令有太多的,你自己可以找合适的来用。

提示:有可能出现矩阵无解的情况,这个时候,就看自己选值了。
云龙九现 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 01:14


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.