java写二元一次方程组求解

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基础
想对作者说点什么? 我来说一句

JAVAJAVA 二元一次方程求解

2009年07月06日 3KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭