java:求解二元一次方程(小程序)

想关内容

求解二元一次方程组
输入两个二元一次方程中的相关系数,分别求出它们的解
y的系数均为1的形式
y=ax+c------1
y=bx+d------2
转换一:
ay=abx+cb----1
by=abx+da----2
转换(1减去2)二:
(b-a)y=cb-da
即可得:
y=(cb-da)/(b-a)
同理:
x=-(c-d)/(a-b);
以上为常规求法
同时还要注意小条件
a和b不能相等;
c和d同时为0时,x和y有一个为0或两个都为0
两个方程不能相同
当a=0时,y=c,x=(c-d)/b
当b=0时,y=d,x=(d-c)/a

源码

import java.util.Scanner;
class Demo{
	public static void main(String[] args){
		System.out.println("二元方程组的形式为:\n\ty=ax+c----1\n\ty=bx+d----2\n输入相关数据:");//提示符
		Scanner scanner=new Scanner(System.in);
		System.out.print("\ta=");//目前还没有能力把几个输入合在一起
		float a0=scanner.nextFloat();
		System.out.print("\tc=");
		float c0=scanner.nextFloat();
		System.out.print("\tb=");
		float b0=scanner.nextFloat();
		System.out.print("\td=");
		float d0=scanner.nextFloat();
		System.out.println("输入的方程组为:\n\ty=("+a0+")x+("+c0+")----1"+"\n\ty=("+b0+")x+("+d0+")----2");//要求的方程为
		float x0,y0;//创建小数点类型的x和y
		if(a0==0&&b0!=0){//当a等于0,b不等于0时
			y0=c0;
			x0=(c0-d0)/b0;
			System.out.println("求解得:\n\ty="+y0+"\n\tx="+x0);
		}
		else if(a0!=0&&b0==0){
			y0=d0;
			x0=(d0-c0)/a0;
			System.out.println("求解得:\n\ty="+y0+"\n\tx="+x0);
		}
		else if(c0==0&&d0==0||a0==0&&b0==0||a0==b0&&c0==d0||a0==b0){//c、d不同时为0,a和b也不能同时为0
			System.out.println("a和b不能同时为0,\nc和d同时为0时x和y有一个为0或全部为0,\n两个等式不可以一样,\n程序退出");
			System.exit(0);
		}
		else{//通常a,b,c,d都不为0
			y0=(c0*b0-d0*a0)/(b0-a0);
			x0=-(c0-d0)/(a0-b0);
			System.out.println("求解得:\n\ty="+y0+"\n\tx="+x0);
		}
	}
}

运行结果

y=4x+18和y=-4x+32的解

在这里插入图片描述

y=0x+53和y=-6x+23的解

在这里插入图片描述

y=0.5x+38和y=-5x+32的解

在这里插入图片描述

y=71x和y=4x的解

在这里插入图片描述

y=43x+48和y=-0x+42的解

在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值