基本信息
源码名称:C# 一元线性回归
源码大小:0.01M
文件格式:.zip
开发语言:C#
更新时间:2020-07-21
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559

本次赞助数额为: 2 元 
   源码介绍






using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LinearRegression
{
    using Statistics;

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int N = int.Parse(txtOrder.Text);
            double[] y = new double[grid.Rows.Count - 1];
            double[,] x = new double[N 1, grid.Rows.Count - 1];
            double[] w = new double[grid.Rows.Count - 1];
            for (int i = 0; i < grid.Rows.Count-1; i  )
            {
                if (grid.Rows[i].Cells[0].Value != null)
                {
                    x[0, i] = 1;
                    double xx = double.Parse(grid.Rows[i].Cells[2].Value.ToString());
                    double term = xx;
                    for (int j = 1; j <= N; j  )
                    {
                        x[j, i] = term;
                        term *= xx;
                    }
                    if (chkLogY.Checked)
                    {
                        y[i] = Math.Log(double.Parse(grid.Rows[i].Cells[3].Value.ToString()));
                        w[i] = double.Parse(grid.Rows[i].Cells[1].Value.ToString());
                    }
                    else
                    {
                        y[i] = double.Parse(grid.Rows[i].Cells[3].Value.ToString());
                        w[i] = double.Parse(grid.Rows[i].Cells[1].Value.ToString());
                    }
                }
            }

            LinearRegression linReg = new LinearRegression();
            linReg.Regress(y, x, w);
            Form2 frm = new Form2();
            frm.C = linReg.C;
            frm.SEC = linReg.SEC;
            frm.ShowDialog();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            Random r = new Random();
            for (int i = 0; i < 20; i  )
            {
                int row = grid.Rows.Add();
                grid.Rows[row].Cells[0].Value = i.ToString();
                grid.Rows[row].Cells[1].Value = "1";
                grid.Rows[row].Cells[2].Value = (i / 10.0).ToString();
                grid.Rows[row].Cells[3].Value = (4.0   3.0 * i / 10.0   r.NextDouble()/10.0).ToString();
            }
        }

        private void chkLogY_CheckedChanged(object sender, EventArgs e)
        {
            for (int r = 0; r < grid.Rows.Count - 1; r  )
            {
                if (chkLogY.Checked)
                {
                    double x = double.Parse(grid.Rows[r].Cells[3].Value.ToString());
                    grid.Rows[r].Cells[1].Value = (x * x).ToString();
                }
                else
                {
                    grid.Rows[r].Cells[1].Value = "1";
                }
            }
        }
    }
}