C# 求解三元一次方程组

C# 求解三元一次方程组

 /// <summary>
 /// 求三元一次方程组
 /// </summary>
 /// <param name="xParams">三个点的X坐标</param>
 /// <param name="yParams">三个点的Y坐标</param>
 /// <returns>返回a,b,c</returns>
public static double[] solutionLinearEqations(double[] xParams, double[] yParams)
{
     double a = Math.Pow(xParams[0], 2);
     double b = xParams[0];
     double c = 1;
     double a1 = yParams[0];

     double d = Math.Pow(xParams[1], 2);
     double e = xParams[1];
     double f = 1;
     double b1 = yParams[1];

     double g = Math.Pow(xParams[2], 2);
     double h = xParams[2];
     double i = 1;
     double c1 = yParams[2];

     double A = a * (e * i - h * f) + b * (g * f - d * i) + c * (d * h - g * e);

     double x = (a1 * (e * i - h * f) + b1 * (h * c - b * i) + c1 * (b * f - e * c)) / A;
     double y = (a1 * (g * f - d * i) + b1 * (a * i - g * c) + c1 * (d * c - a * f)) / A;
     double z = (a1 * (d * h - g * e) + b1 * (g * b - a * h) + c1 * (a * e - b * d)) / A;

     return new double[] { x, y, z };
 }

点个关注吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值