请教这个矩阵如何用c程序求解
[ 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的 很早的帖子了……我认为有两种思路吧。
【第一种】是把十二个数据都用完,那么求解系数a0~8的方程就是:
然后就相当于一个求超定方程的最小二乘解的问题,将系数矩阵求广义逆(加号逆)左乘到右端就可以了:
加号广义逆的求法很多,翻一翻矩阵的书就知道了,这里给出一种:
这种思路多用在已知的XYZ等数据是通过实验测得的情况下,带有一定误差的情况下,通过求多组数据的最小二乘解来得到对原系数的较好估计。
【第二种】是只用9个数据构建方程,即取上述系数矩阵的任意9行就可以了。
这样,用正常的求解线性方程组的方法就可以得到a0~8的值了。
这种思路用于已知XYZ等输入输出数据的精确值的情况下。
初来乍到,敬请批评指正!
页:
[1]