最小二乘法直线拟合java

java能不能操纵excel中的linest函数,我要一个拟合后的公式?

你好。使用最小二乘法是已知的最佳直线拟合数据,并返回这条线阵列的描述。

已知一组数据,用JAVA JFRAME利用最小二乘法求出该组数据的多项式拟合公式

这个问题,我好像回答过!

/**

* 最小二乘法计算类

*

* @author Administrator

*

*/

public class LeastSquareMethod {

private double[] x;

private double[] y;

private double[] weight;

private int m;

private double[] coefficient;

public LeastSquareMethod(double[] x, double[] y, int m) {

if (x == null || y == null || x.length 2 || x.length != y.length

|| m 2)

throw new IllegalArgumentException(“无效的参数”);

this.x = x;

this.y = y;

this.m = m;

weight = new double[x.length];

for (int i = 0; i x.length; i++) {

weight[i] = 1;

}

}

public LeastSquareMethod(double[] x, double[] y, double[] weight, int m) {

if (x == null || y == null || weight == null || x.length 2

|| x.length != y.length || x.length != weight.length || m 2)

throw new IllegalArgumentException(“无效的参数”);

this.x = x;

this.y = y;

this.m = m;

this.weight = weight;

}

public double[] getCoefficient() {

if (coefficient == null)

compute();

return coefficient;

}

public double fit(double v) {

if (coefficient == null)

compute();

if (coefficient == null)

return 0;

double sum = 0;

for (int i = 0; i coefficient.length; i++) {

sum += Math.pow(v, i) * coefficient[i];

}

return sum;

}

private void compute() {

if (x == null || y == null || x.length = 1 || x.length != y.length

|| x.length m || m 2)

return;

double[] s = new double[(m – 1) * 2 + 1];

for (int i = 0; i s.length; i++) {

for (int j = 0; j x.length; j++)

s[i] += Math.pow(x[j], i) * weight[j];

}

double[] f = new double[m];

for (int i = 0; i f.length; i++) {

for (int j = 0; j x.length; j++)

f[i] += Math.pow(x[j], i) * y[j] * weight[j];

}

double[][] a = new double[m][m];

for (int i = 0; i m; i++) {

for (int j = 0; j m; j++) {

a[i][j] = s[i + j];

}

}

coefficient = Algorithm.multiLinearEquationGroup(a, f);

}

/**

* @param args

*/

public static void main(String[] args) {

LeastSquareMethod l = new LeastSquareMethod(

new double[] { 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 },

new double[] { 37.84, 44.55, 45.74, 63.8, 76.67, 105.59, 178.48, 355.27, 409.92 },

new double[] { 11, 12, 13, 14, 15, 16, 17, 18, 19 },

2);

double[] x = l.getCoefficient();

for (double xx : x) {

System.out.println(xx);

}

System.out.println(l.fit(2009));

}

}

最小二乘法直线拟合

把测量得到的一些离散点标到坐标平面上

目标是画一条直线 使的所有点到这条直线得距离平方和最小

最小二乘法直线拟合java

谁能给一个java编写的利用最小二乘法进行曲线拟合的算法?

最小二乘发拟合的是直线吧,不是曲线,非线性曲线拟合你的有模型,知道曲线的方程式。或者就是差值了,三次样条或者B样条。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月27日 22:28:29
下一篇 2024年3月27日 22:36:55

相关推荐

  • excel折线图带直角,excel折线图怎么画直线

    在EXCEL图表中直角折线图怎么画 1、首先在excel表格中输入需要制作直线图的基础数据,并且选中数据单元格区域。然后点击表格上方的工具栏中的“插入”选项,在其中找到图表选项。点击需要插入的折线图并根据样式选择其中一种折线图。 2、打开需要插入折线图的excel表格,选中需要插入的数据。找到excel表格上方的插入,选中插入的折线图类型之后会得到一张折线图…

    2024年5月23日
    4400
  • 小二乘法拟合多项式c语言的简单介绍

    最小二乘法程序(C语言,matlab都可以) 知道“最小二乘法”吧,怎么用c语言来写这样一个程序,就是输入几组数据,回车运行后输出直线的两个参数。 最小二乘法常用于根据实测数据求线性方程的最近似解。 最小二乘法的问题如何用matlab来实现?我们可以根据数理统计的最小二乘法原理来写:为了说明问题,特举例。已知某种合金的抗拉强度y与含碳量x的数据,求其一元线性…

    2024年5月23日
    4700
  • excel如何做乘法,Excel如何做乘法公式

    excel表格怎么相乘 1、打开一个Excel表格。输入要乘的数据。在其他位置输入一个固定的数字,以0.8为例,选择复制。选择这列要输入的数据后选择,粘贴。选择选择性粘贴。在弹出的窗体中选择运算中的乘,点击确定。 2、打开需要操作的EXCEL表格,在任意空白单元格函数输入框中输入:=,然后点击选择第一个需要相乘的单元格数字。 3、A1*B1=C1的Excel…

    2024年5月20日
    4200
  • excel散点图加一条线,excel画散点图加直线

    怎样在散点图中添加垂线? 1、方法:首先确保图形为散点图,然后对于节点(x,y),添加一组表示垂线的数据(x,y),(x,0),并将其以新的数据系列的方式添加到原来的图中,最后设置线型为虚线。 2、打开 Origin,输入数据(以下为任意输入):在 Origin 中创建一个新的工作表,输入一些数据,例如 X 轴为 5,Y 轴为 10。 3、手绘。这是最简单、…

    2024年5月20日
    5300
  • excel怎么算乘法公式是什么,在excel中怎么算乘法公式

    在excel中怎样做乘法计算公式 excel表格乘法计算公式:=单元格*单元格。工具/原料:组装电脑 台式机、windows winexcel excel2007 首先打开excel表格,选中计算乘积的单元格。 excel的乘法公式操作方法有两种:第一种是在目标格中输入=要计算各项乘积,比如我们要计算A2/B2/C2/D2的乘积,只需在目标栏里输入=A2*B…

    2024年5月19日
    3700
  • java实现按钮控制画直线,java怎么在按钮间设置距离

    一个画直线的JAVA小程序 1、Applet小程序是需要嵌入在网页中执行的,如果你不想用html,那么要加入 public void init() {}方法,在里边初始化容器和组件,那么在调用paint的时候就能看到效果了。 2、求好心人帮找或做个JAVA画板程序 代码,主要能实现简单的画板功能! 程序运行效果如Windows画板所示。能够实现随手画、画弹簧…

    2024年5月19日
    4500
  • excel用点做直线,excel如何用点做直线

    怎么用EXCEL制作一个散点图,然后在散点图上根据散点作一条有函数关系… 首先,我们打开我们的电脑,然后我们打开我们电脑上面的一个excel文档。之后我们选中图示中的区域。然后我们点击工具栏中的插入。之后我们点击散点图下方的下拉箭头。弹出的界面,我们点击带平滑线的散点图。 先打开一份EXCEL表格,在表格里面选择插入,并在图表中选择散点图。接着在…

    2024年5月19日
    4500
  • excel上面怎样拟合直线,excel拟合直线怎么看斜率

    excel线性拟合怎么做 1、在原点中,选择菜单栏中的绘图菜单,单击内部的散点图,然后在菜单栏中选择分析菜单。其中有线性拟合和多项式拟合。点击拟合方式,在弹出子窗口中选择“图表上的显示公式”,并显示公式。 2、用EXCEL的折线图或带平滑线的散点图把数据绘出。单击图表右上角的十字,选中“趋势线”,右击左边的三角小标,然后选择更多选择。 3、\x0d\x0a\…

    2024年5月19日
    3800
  • c语言实现霍夫直线检测,霍夫变换检测圆 python

    霍夫直线检测原理 1、如果在图像空间 x – y 中在增加一个点 ,那相应的该点在霍夫空间也会产生相同的点与线的对应关系,并且 A 点与 B 点产生的直线会在霍夫空间相交于一个点。而这个点的坐标值 就是直线 AB 的参数。 2、最基本的霍夫变换是从黑白图像中检测直线(线段)。我们先看这样一个问题:设已知一黑白图像上画了一条直线,要求出这条直线所在…

    2024年5月18日
    4400
  • excel中怎么使用乘法,excel中怎么使用乘法计算

    Excel表格如何使用乘法函数公式 1、首先打开excel表格,选中计算乘积的单元格。然后在单元格输入图片中的函数,注意:图片函数中的“C3”和“D3”是两个相乘数据的位置。 2、方法利用乘号“*”来实现两个数值的相乘运算。例如:在单元格A1中输入“30”,B1中输入“10”,在C1单位格中输入公式“=A1*B1”,回车,得到结果“300”。 3、打开exc…

    2024年5月17日
    6600

发表回复

登录后才能评论



关注微信