java最小二乘法

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

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

java最小二乘法

最小二乘法,y=a0+a1*x1+a2*x2,要求使用java编写

x2nbsp这其实就是一个多元线性回归问题;2; nbsp,1);

x2=rand(10;

gt,用regress函数就可以了: x1=rand(10.8651其中前四行的作用是产生测试数据,真正需要的只有最后一行代码,得到的a依次为a1、a2,1);

a1=1,1)])

a =

ones(10,1)*0.1;

a=regress(y,[x1 a2=2;a0=3;1;y=a1*x1+a2*x2+a0+randn(10;nbsp.1448

nbsp.1743

2

如何用Java做一个线性回归的图像

Eclipse只是IDE,用记事本也能写出来,这不是关键。

你先看一下java的2D绘图,然后,线性回归用套路的,就和做数学题一样,一步一步让程序做就可以啦。

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

}

}

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

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 17:39:25
下一篇 2024年3月26日 17:49:42

相关推荐

  • java盈利,java赚外快

    开源java框架怎么盈利? 卖Java配套软件,比如Sun ONE Studio Enterprise Edition要钱,而且很贵。提供服务。比如Sun ONE Studio Standard Edition不要钱,但是技术支持要钱。Sun One Application server Identy Server 好多好多,好贵好贵。 开源社区版让大家了解…

    2024年5月19日
    4600
  • java调用扫描仪twain,java扫描器的用法

    Java中怎么调用扫描枪 扫描控制台输入当通过newScanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。 总之c/s架构的java程序调用扫描仪通过jni+twain编程既可完成。 比…

    2024年5月19日
    3600
  • javaenum单利,java 单利

    JAVA枚举的作用与好处 枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。 枚举类型最大的特点就是:构造函数是private修饰的,也就是不能对其进行new,对象的实例都是预定义的,也就是在类加载的时候都是定义好了的,不会给其它调用去创建实例的机会。 第四种:饿汉模式…

    2024年5月19日
    4400
  • java与c语言哪个好,java语言和c语言哪个更好

    c语言和java哪个就业好 1、C语言比较好学,简单,速成。C语言用得比较广,而且是很成熟的面向过程的一门语言。 2、这两种语言都是当今热门语言,但是从应用场景和就业前景来看,Java语言具有一定的优势,对于新手来说学习起来会更简单。从学习难度来看,Java语言要比C语言简单一些。 3、Java,毫无争议排名第一的工业语言,可以跨平台使用,且安全系数高、稳定…

    2024年5月19日
    3900
  • java增加菜单栏,java菜单栏不见了

    如何在Java的新窗口中添加菜单栏 menuBar中有文件和帮助两个菜单,分别还有子菜单,并将menuBar添加到JFrame中。希望对你有帮助。 如果代码运行没有报错,那就是添加成功了。只是展示的时候,由于你的menubar没内容,所以看不出效果。你可以再menuBar中添加一个JMenu,然后再看看效果。PS:java桌面程序,java自己都放弃了。 )…

    2024年5月19日
    3500
  • java中怎么插入图片,如何给java添加图片

    java如何在画布上添加图片 1、然后在现在这个类里要用的话,用mycanvas代替canvas,要改变绘图的话,只需要调用repaint方法即可。 2、//设置标签的尺寸,即背景图象的大小。().setOpaque(false);/*把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。*/ pnlMain.add(lb…

    2024年5月19日
    4200
  • java解析md文件格式,md java

    md3文件用什么东西打开? 1、试着用QQ影音或暴风影音 来打开。MD3文件是一种在queke3中使用的模型数据文件,MD3模型动画,是经典的关键帧动画。 2、用记事本打开。首先来普及一下什么是md文件,markdown也是一种标记语言。md文件其实可以用常用的文本编辑器都可以打开,如记事本sublime等等。用记事本打开,把markdown文件拖到记事本图…

    2024年5月19日
    4200
  • javabytebuffer读取,java读取byte数据

    java读取图片到byteBuffer中 1、下面给你提供一个实现,该实现采用了代理模式。这个实现包含两个文件,分别是Client.java和ImageIcoProxy.java,ImageIcoProxy.java负责了图片的延迟加载,你可以修改为不延迟即可。 2、使用jsoup解析到这个url就行,dom结构如下:look-inside-cover类只有…

    2024年5月19日
    3700
  • java怎么输出html文件,java怎么输出hello world

    编写程序,将一个Java文件转换为HTML一个文件 1、就是在工作空间把你的.class弄到一个文件夹里面,然后再这个文件夹里面编写一个.html文件。这个html文件要用到用HTTP标记语言。当然你也可以借助Dreamweaver软件来做这个.html文件。所以你还需要学习网页设计才懂这方面的知识。 2、你要像手动输出html的展示内容可以自己写一个ser…

    2024年5月19日
    4200
  • java附件预览,java实现下载文件

    用java做一个word和excel的在线预览功能,跪求代码 1、至于openFile.aspx.cs的代码就更简单,主要是实现fid的数值绑定,当然也可以在前面用js脚本直接取fid。 2、Excel这部分可以用SpreadJS,这是一个纯前端的控件,用于在线Excel表格展示预览操作。既然你是要实现在线预览,肯定是要包含前端的,SpreadJS本身是纯前…

    2024年5月19日
    3700

发表回复

登录后才能评论



关注微信