线性插值的dll,大家提意见!
xxc.rar
(11.58 KB)
程序代码:
using System; using System.Collections.Generic; using System.Text; namespace XXCZ { public class Xc { public static double CalOne(double x,double y,params double []m) //参数格式x,y,z,共3个点的。其中z就是要求的。 { double z = 0d; if (m.Length == 0 || m.Length != 9) //传递的参数不合要求的话,返回0 { return z; } else //符合要求 { double A = 0d; try { A = 1 / (m[3] *( m[7]-m[1]) + m[6] * ( m[1] - m[4] ) + m[0] * ( m[4] - m[7] )); //求矩阵的行列式的值的倒数 } catch (ArithmeticException) { return z; } //if (A < 0d) //行列式的值取正 //A = -1.0d * A; double a0 = A * (m[3] * m[7] - m[4] * m[6]) * m[2]+A * (m[6] * m[1] - m[0] * m[7] ) * m[5]+A * ( m[0] * m [4] - m[1] * m[3] ) *m[8]; //求线性参数,下二个相同 double a1 = A * (m[4] - m[7]) * m[2] + A * (m[7] - m[1]) * m[5] + A * (m[1] - m[7]) * m[8]; double a2 = A * (m[6] - m[3]) * m[2] + A * (m[0] - m[6]) * m[5] + A * (m[3] - m[0]) * m[8]; z = a0 + a1 * x + a2 * y; return z; } } } }关于线性插值的定义大家还请看看相关的书!我这程序是死的,用伴随矩阵来求矩阵的逆,老老实实的矩阵运算!但是运算结果有点问题(主要是精度,偏差大),该如何改进?
[ 本帖最后由 qq1023569223 于 2011-4-13 17:56 编辑 ]