java写二元一次方程组求解

原创 2017年02月22日 11:20:52

1.运用克莱姆法则(请自行百度)


2.行列式求解

3.java代码求解
package com.dql.lms.system.liu;


import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;


public class Calculate {

public static String Calculate(Map<String, BigDecimal> map){
BigDecimal a1 = map.get("a1");
BigDecimal a2 = map.get("a2");
BigDecimal a3 = map.get("a3");

BigDecimal b1 = map.get("b1");
BigDecimal b2 = map.get("b2");
BigDecimal b3 = map.get("b3");

BigDecimal c1 = map.get("c1");
BigDecimal c2 = map.get("c2");
BigDecimal c3 = map.get("c3");

BigDecimal d1 = map.get("d1");
BigDecimal d2 = map.get("d2");
BigDecimal d3 = map.get("d3");

BigDecimal D = a1.multiply(b2).multiply(c3).add(a3.multiply(b1).multiply(c2)).add(a2.multiply(b3).multiply(c1)).subtract(a3.multiply(b2).multiply(c1).add(a1.multiply(b3).multiply(c2)).add(a2.multiply(b1).multiply(c3)));

BigDecimal D1 = d1.multiply(b2).multiply(c3).add(d3.multiply(b1).multiply(c2)).add(d2.multiply(b3).multiply(c1)).subtract(d3.multiply(b2).multiply(c1).add(d1.multiply(b3).multiply(c2)).add(d2.multiply(b1).multiply(c3)));

BigDecimal D2 = a1.multiply(d2).multiply(c3).add(a3.multiply(d1).multiply(c2)).add(a2.multiply(d3).multiply(c1)).subtract(a3.multiply(d2).multiply(c1).add(a1.multiply(d3).multiply(c2)).add(a2.multiply(d1).multiply(c3)));

BigDecimal D3 = a1.multiply(b2).multiply(d3).add(a3.multiply(b1).multiply(d2)).add(a2.multiply(b3).multiply(d1)).subtract(a3.multiply(b2).multiply(d1).add(a1.multiply(b3).multiply(d2)).add(a2.multiply(b1).multiply(d3)));

if(D.compareTo(BigDecimal.ZERO)==0){

return "无解";
}
BigDecimal x = D1.divide(D,5,BigDecimal.ROUND_DOWN);
BigDecimal y = D2.divide(D,5,BigDecimal.ROUND_DOWN);
BigDecimal z = D3.divide(D,5,BigDecimal.ROUND_DOWN);
BigDecimal ss = new BigDecimal("0.36").multiply(x).add(new BigDecimal(0.6).multiply(y)).add(z);

System.out.println("x = "+x);
System.out.println("y = "+y);
System.out.println("z = "+z);
return "x = "+x+";y = "+y+";z = "+z;
}

public static void main(String[] args) {
Map<String, BigDecimal> map = new HashMap<String, BigDecimal>();
map.put("a1", new BigDecimal( "0.2025"));
map.put("a2", new BigDecimal("0.0225" ));
map.put("a3", new BigDecimal( "0.36"));

map.put("b1", new BigDecimal("0.45" ));
map.put("b2", new BigDecimal("0.15" ));
map.put("b3", new BigDecimal("0.6" ));

map.put("c1", new BigDecimal( "1"));
map.put("c2", new BigDecimal("1"));
map.put("c3", new BigDecimal("1" ));

map.put("d1", new BigDecimal("2.2775" ));
map.put("d2", new BigDecimal( "0.26"));
map.put("d3", new BigDecimal("1.04" ));

System.out.println(Calculate.Calculate(map));;

}


}

相关文章推荐

JAVA一个完整的QQ登录界面,JFrame中的一些个性化设置功能

package com.smallQQ1; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.bord...

线性代数导论20——克莱姆法则、逆矩阵、体积

本文是Gilbert Strang的线性代数导论课程笔记。课程地址:http://v.163.com/special/opencourse/daishu.html   第二十课时:克莱姆法则、逆矩阵...

二元一次方程组求解C++源代码

  • 2010年08月29日 19:03
  • 28KB
  • 下载

java实现N元一次方程组求解

import java.text.DecimalFormat; import java.util.zip.ZipEntry; public class CalculationEquations { ...

二元一次方程组计算

  • 2013年06月23日 09:04
  • 24KB
  • 下载

二元一次方程组计算器 vb

  • 2013年01月11日 21:33
  • 2KB
  • 下载

vb实现二元一次复数方程求解

Public Class MainForm     Dim a, b, c, d, e1, f, g, h, k1, k1i, k2, k2i, x1, x2, y1, y2 As Single ...

解二元一次方程组程序

  • 2011年03月05日 20:48
  • 5KB
  • 下载

R语言非线性方程组求解dfsane,nleqslv

首先,dfsane属于BB包,使用时应首先载入library("BB") nleqslv 属于nleqslve包,同样使用时应载入 library("nleqslve") Description ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java写二元一次方程组求解
举报原因:
原因补充:

(最多只允许输入30个字)