关闭

java写二元一次方程组求解

157人阅读 评论(0) 收藏 举报
分类:

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));;

}


}

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29914次
    • 积分:689
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:59篇
    • 译文:0篇
    • 评论:1条
    最新评论