C# 二元一次方程参数求解
本文记录了关于求直线斜率及纵截距值的简单方法,只是简单的记录下求解思路,最终还需根据具体项目进行优化。
设直线方程式为:y=kx+b
编程思想:
1、代入y1与x1的值,得到:y1=kx1+b
2、代入y2与x2的值,得到:y2=kx2+b
3、首先算出一个系数m=kx1 / kx2 或 m=kx2 / kx1
4、根据第三步,将 y1=kx1+b 或 y2=kx2+b 乘以系数m,使 kx1==kx2 ,注意 kx1与kx2不能为0
4、将2个函数相减,例如:my2-my1=mb-b 即 m(y2-y1)=(m-1)b
5、算出纵截距b=(m(y2-y1))/(m-1) 注意:m不能为1 同时注意浮点数四舍五入问题
6、将b值y1=kx1+b中,求出斜率k值
示例代码:
using System;
namespace Demo
{
class Program
{
;//小数位数保留2位
/// <summary>
/// 计算斜率k及纵截距b值
/// </summary>
/// <param name="x1">坐标点x1</param>
/// <param name="x2">坐标点x2</param>
/// <param name="y1">坐标点y1</param>
/// <param name="y2">坐标点y2</param>
/// <param name="kvalue">斜率k值</param>
/// <param name="bvalue">纵截距b值</param>
private static void Calculate(float x1, float x2, float y1, float y2, ref float kvalue, ref float bvalue)//求方程y=kx+b 系数 k ,b
{
;//系数值
try
{
) || (x2 == ) || (x1 == x2)) return; //排除为零的情况以及x1,x2相等时无法运算的情况
//if (y1 == y2) return; //根据具体情况而定,如何这两个值相等,得到的就是一条直线
;
if (x1 >= x2)
{
coefficient = (float)Math.Round((x1 / x2), _decimaldigits);
temp = y2 * coefficient; //将对应的函数乘以系数
bvalue = ()), _decimaldigits);
kvalue = (float)Math.Round(((y1 - bvalue) / x1), _decimaldigits); //求出k值
}
else
{
coefficient = x2 / x1;
temp = y1 * coefficient;
bvalue = ()), _decimaldigits);//求出b值
kvalue = (float)Math.Round(((y2 - bvalue) / x2), _decimaldigits); //求出k值
}
}
catch
{
Console.WriteLine("x系数不能为0或相等");
}
}
static void Main(string[] args)
{
;
;
;
;
;
;
Console.WriteLine("计算直线斜率k及纵截距b");
Console.WriteLine("请输入x1值");
x1 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("请输入y1值");
y1 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("请输入x2值");
x2 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("请输入y2值");
y2 = Convert.ToSingle(Console.ReadLine());
Calculate(x1, x2, y1, y2, ref kvalue, ref bvalue);
Console.WriteLine("直线方程为:y={0}x+{1}", kvalue, bvalue);
Console.ReadKey();
}
}
}
运行结果:

C# 二元一次方程参数求解的更多相关文章
- flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )
1.线性回归 假设线性函数如下: 假设我们有10个样本x1,y1),(x2,y2).....(x10,y10),求解目标就是根据多个样本求解theta0和theta1的最优值. 什么样的θ最好的呢?最 ...
- SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu
%SA:T1法利用Matlab编写主函数实现对定义域[-5,5]上的二元函数求最优解—Jason niu [x,y] = meshgrid(-5:0.1:5,-5:0.1:5); z = x.^2 + ...
- 使用代数方程库 Algebra.js解二元一次方程
假设二元一次方程如下: x + y = 11 x - y = 5 解方程如下: <!DOCTYPE html> <html lang="zh-CN"> &l ...
- ACM_鸡兔同笼(二元一次方程)
鸡兔同笼 Time Limit: 2000/1000ms (Java/Others) Problem Description: 今有雉兔同笼,上有n头,下有m足,问雉兔各几何? Input: 输入有多 ...
- # 「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程)
「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程) 题链 题意:n条边n个节点的连通图,边权为两个节点的权值之和,没有「自环」或「重边」,给出的图中有且只有一个包括奇数个结点的环 ...
- matlab求解二元一次方程组的解得表达式
- 利用Python求解二元一次方程
本程序流程如下: (1)输入A.B.C (2)计算△ (3)判断解的个数 (4)计算解 (5)输出解 求:x2-3x+2=0的解 #输入A.B.C A=float(input("输入A:&q ...
- 使用python实现解析二元一次方程
二元一次函数的实现 import cmathimport mathimport sys 这里导入cmath包是在后面用来处理复数的情况导入math使用来处理 平方 根号等的运算而导入sys的意义是为了 ...
- HDU 4793 Collision (解二元一次方程) -2013 ICPC长沙赛区现场赛
题目链接 题目大意 :有一个圆硬币半径为r,初始位置为x,y,速度矢量为vx,vy,有一个圆形区域(圆心在原点)半径为R,还有一个圆盘(圆心在原点)半径为Rm (Rm < R),圆盘固定不动,硬 ...
随机推荐
- php--------网页开发实现微信JS的(定位,地图显示,照片选择功能)
今天说说微信网页开发中一下JS的功能,分享一下,希望对各位有所帮助. 前提:要有公众号,和通过微信认证,绑定域名,得到相应信息,appid,appsecret等. 微信开发文档:https://mp. ...
- 在请求中使用XML Publisher生成文件报错
在页面上使用按钮生成该文件不报错,但是使用请求就报错. 错误内容如下 Error : No corresponding LOB data found :SELECT L.FILE_DATA FILE_ ...
- FindBugs插件的安装与使用
转载:http://www.cnblogs.com/kayfans/archive/2012/06/18/2554022.html 1 什么是FindBugs FindBugs 是一个静态分析工具,它 ...
- Word 开发资料集合
Word 对象模型概述 https://msdn.microsoft.com/zh-cn/library/kw65a0we.aspx DSOframer微软官方API的查阅方法 http://sh ...
- C++设计与声明——让接口容易被正确使用
一个简答易错的例子 class Date { public Date(int month,int day,int year); } 一年后使用这个接口的时候,写了Date d(15,10,2015)或 ...
- linux下部署tomcat服务器之安装jdk
如果一开始安装过jdk的可以卸载 rpm -qa | grep java rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x8 ...
- Beta阶段贡献分配规则
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2382] 在新成员加入后,我们经过讨论,决定沿用alpha阶段贡献分分配规则. ...
- 【python】venv使用
virtualenvwrapper 比 virualenv 好用一些. 准备 export WORKON_HOME=~/venv source /usr/bin/virtualenvwrapper.s ...
- 为Python编写一个简单的C语言扩展模块
最近在看pytorh方面的东西,不得不承认现在这个东西比较火,有些小好奇,下载了代码发现其中计算部分基本都是C++写的,这真是要我对这个所谓Python语音编写的框架或者说是库感觉到一丢丢的小失落,细 ...
- Ubuntu下的计算器
今天计算乘法时居然给算错了,好囧. 于是开始使用ubuntu自带的计算器:gcalctool 使用方法: 在终端直接输入命令gcalctool即可.