声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2509|回复: 1

[C/C++] 请教这个矩阵如何用c程序求解

[复制链接]
发表于 2010-1-12 13:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
[ x' ]     [ a0, a1, a2 ]    [ x ]
[ y' ] =  [ a3, a4, a5 ] *  [ y ]
[ z' ]     [ a6, a7, a8 ]    [ z ]

x,y,z和x',y',z'是已知的,而且有4组
求解a0--a8, 有什么思路?

大括号不好写,左边是3x1的,中间是3x3的,右边是3x1的
回复
分享到:

使用道具 举报

发表于 2010-10-1 12:07 | 显示全部楼层
很早的帖子了……我认为有两种思路吧。
【第一种】是把十二个数据都用完,那么求解系数a0~8的方程就是:
QQ截图未命名1.jpg
然后就相当于一个求超定方程的最小二乘解的问题,将系数矩阵求广义逆(加号逆)左乘到右端就可以了:
QQ截图未命名2.jpg
加号广义逆的求法很多,翻一翻矩阵的书就知道了,这里给出一种:
QQ截图未命名3.bmp
这种思路多用在已知的XYZ等数据是通过实验测得的情况下,带有一定误差的情况下,通过求多组数据的最小二乘解来得到对原系数的较好估计。
【第二种】是只用9个数据构建方程,即取上述系数矩阵的任意9行就可以了。
这样,用正常的求解线性方程组的方法就可以得到a0~8的值了。
这种思路用于已知XYZ等输入输出数据的精确值的情况下。

初来乍到,敬请批评指正!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 07:30 , Processed in 0.058037 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表