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