一元线性回归模型控制方程求解.docx
- 文档编号:29972294
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:57
- 大小:97.26KB
一元线性回归模型控制方程求解.docx
《一元线性回归模型控制方程求解.docx》由会员分享,可在线阅读,更多相关《一元线性回归模型控制方程求解.docx(57页珍藏版)》请在冰豆网上搜索。
一元线性回归模型控制方程求解
梅国平,袁捷敏,毛小兵,李杰编著《概率论与数理统计》,科学出版社,2007年版P.268给出一个一元线性回归模型控制问题求解方程组:
书中解得p1=2.51p2=2.48
上述控制方程组的解可以表示成两条曲线中间夹一条直线与直线y=2、直线y=3相交的四个交点所对应的横坐标x值。
用mathematica软件做出的示意图如下,mathematic软件中相应的隐函数作图命令为:
用Java语言编写出求解类似控制方程组求解程序。
程序求解过程的难点在于上述方程组中的根号开方部分,这个程序把解上述复杂方程组的根号开方问题转化为求一个一元二次方程的两个根。
借鉴其他参考书中有关论述,用被控区间两个端点的中心对应的回归直线上投影点横坐标x值,代替控制方程中根号下的未知数,近似讨论了一下控制区间的长度是否满足可控条件,不是很准确。
精确讨论上述控制方程组的可控问题比较复杂,这个程序没有实现。
程序运行启动界面截图:
点击“求解”按钮后程序运行界面截图:
源程序清单如下:
主程序:
一元线性回归模型控制方程求解.java
/**
*根据给定的因变量被控区间,求出自变量的施控区间。
*
*作者:
Adam
*
*/
publicclass一元线性回归模型控制方程求解
{
publicstaticvoidmain(Stringargs[])
{
界面求解实例=new界面(6.45,-1.58,2.0,3.0,4.78,2.306,0.2,10.0,2.5);
}
}
输入输出界面类:
界面.java
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
importjavax.swing.JButton;
importjavax.swing.JPanel;
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
publicclass界面
{
privateJFrame主窗口;
privateJLabela标签;
privateJTextFielda;
privateJLabelb标签;
privateJTextFieldb;
privateJLabelTn_2标签;
privateJTextFieldTn_2;
privateJLabelSe标签;
privateJTextFieldSe;
privateJLabeln标签;
privateJTextFieldn;
privateJLabelaverageOfX标签;
privateJTextFieldaverageOfX;
privateJLabellxx标签;
privateJTextFieldlxx;
privateJLabel左端点标签;
privateJTextField左端点;
privateJLabel右端点标签;
privateJTextField右端点;
privateJLabel可控否标签;
privateJLabel左端点dY原始值;
privateJLabel左端点根1标签;
privateJTextField左端点根1值;
privateJLabel左端点根1dY检验值;
privateJLabel左端点根2标签;
privateJTextField左端点根2值;
privateJLabel左端点根2dY检验值;
privateJLabel右端点dY原始值;
privateJLabel右端点根1标签;
privateJTextField右端点根1值;
privateJLabel右端点根1dY检验值;
privateJLabel右端点根2标签;
privateJTextField右端点根2值;
privateJLabel右端点根2dY检验值;
privateJButton求解;
private求解按钮动作实际求解;
privateJButton重置;
privateJButton退出;
界面()
{
初始化界面();
实际求解=new求解按钮动作(this);
求解.addActionListener(实际求解);
}
界面(doubleoriginalA,doubleoriginalB,doubleoriginal左端点,doubleoriginal右端点
doubleoriginalLxx,doubleoriginalTn_2,doubleoriginalSe,doubleoriginalN,doubleoriginalAverageOfX)
{
初始化界面();
a.setText(Double.toString(originalA));
b.setText(Double.toString(originalB));
左端点.setText(Double.toString(original左端点));
右端点.setText(Double.toString(original右端点));
lxx.setText(Double.toString(originalLxx));
Tn_2.setText(Double.toString(originalTn_2));
Se.setText(Double.toString(originalSe));
n.setText(Double.toString(originalN));
averageOfX.setText(Double.toString(originalAverageOfX));
实际求解=new求解按钮动作(this);
求解.addActionListener(实际求解);
}
privatevoid初始化界面()
{
主窗口=newJFrame("一元线性回归模型控制方程求解");
主窗口.setSize(900,400);
主窗口.setLocation(120,120);
a标签=newJLabel("a:
");
a=newJTextField(20);
输入文本框数字检查check=new输入文本框数字检查(主窗口);
a.getDocument().addDocumentListener(check);
b标签=newJLabel("b:
");
b=newJTextField("",20);
b.getDocument().addDocumentListener(check);
Tn_2标签=newJLabel("Tn_2:
");
Tn_2=newJTextField("",20);
Tn_2.getDocument().addDocumentListener(check);
Se标签=newJLabel("Se:
");
Se=newJTextField("",20);
Se.getDocument().addDocumentListener(check);
n标签=newJLabel("n:
");
n=newJTextField("",20);
n.getDocument().addDocumentListener(check);
averageOfX标签=newJLabel("averageofx:
");
averageOfX=newJTextField("",20);
averageOfX.getDocument().addDocumentListener(check);
lxx标签=newJLabel("lxx:
");
lxx=newJTextField("",20);
lxx.getDocument().addDocumentListener(check);
左端点标签=newJLabel("左端点:
");
左端点=newJTextField("",20);
左端点.getDocument().addDocumentListener(check);
右端点标签=newJLabel("右端点:
");
右端点=newJTextField("",20);
右端点.getDocument().addDocumentListener(check);
JPanel输入第一行=newJPanel();
JPanel输入第二行=newJPanel();
JPanel输入第三行=newJPanel();
输入第一行.add(a标签);
输入第一行.add(a);
输入第一行.add(b标签);
输入第一行.add(b);
输入第一行.add(Tn_2标签);
输入第一行.add(Tn_2);
输入第二行.add(Se标签);
输入第二行.add(Se);
输入第二行.add(n标签);
输入第二行.add(n);
输入第二行.add(averageOfX标签);
输入第二行.add(averageOfX);
输入第三行.add(lxx标签);
输入第三行.add(lxx);
输入第三行.add(左端点标签);
输入第三行.add(左端点);
输入第三行.add(右端点标签);
输入第三行.add(右端点);
左端点dY原始值=newJLabel("左端点dy原始值:
",JLabel.CENTER);
左端点根1标签=newJLabel("由根1:
",JLabel.CENTER);
左端点根1值=newJTextField(20);
左端点根1dY检验值=newJLabel("dy检验值:
",JLabel.CENTER);
左端点根2标签=newJLabel("由根2:
",JLabel.CENTER);
左端点根2值=newJTextField(20);
左端点根2dY检验值=newJLabel("dy检验值:
",JLabel.CENTER);
右端点dY原始值=newJLabel("右端点dy原始值:
",JLabel.CENTER);
右端点根1标签=newJLabel("由根1:
",JLabel.CENTER);
右端点根1值=newJTextField(20);
右端点根1dY检验值=newJLabel("dy检验值:
",JLabel.CENTER);
右端点根2标签=newJLabel("由根2:
",JLabel.CENTER);
右端点根2值=newJTextField(20);
右端点根2dY检验值=newJLabel("dy检验值:
",JLabel.CENTER);
JPanelrightPoint1=newJPanel();
JPanelrightPoint2=newJPanel();
JPanelrightPoint3=newJPanel();
JPanelleftPoint1=newJPanel();
JPanelleftPoint2=newJPanel();
JPanelleftPoint3=newJPanel();
leftPoint1.add(左端点dY原始值);
leftPoint2.add(左端点根1标签);
leftPoint2.add(左端点根1值);
leftPoint2.add(左端点根1dY检验值);
leftPoint3.add(左端点根2标签);
leftPoint3.add(左端点根2值);
leftPoint3.add(左端点根2dY检验值);
rightPoint1.add(右端点dY原始值);
rightPoint2.add(右端点根1标签);
rightPoint2.add(右端点根1值);
rightPoint2.add(右端点根1dY检验值);
rightPoint3.add(右端点根2标签);
rightPoint3.add(右端点根2值);
rightPoint3.add(右端点根2dY检验值);
求解=newJButton("求解");
重置=newJButton("重置");
重置.addActionListener(new重置按钮动作(this));
退出=newJButton("退出");
退出.addActionListener(new退出按钮动作(this));
JPanel按钮行=newJPanel();
按钮行.add(求解);
按钮行.add(重置);
按钮行.add(退出);
可控否标签=newJLabel("",JLabel.CENTER);
JPanelpointPanel=newJPanel(newGridLayout(11,1));
pointPanel.add(输入第一行);
pointPanel.add(输入第二行);
pointPanel.add(输入第三行);
pointPanel.add(可控否标签);
pointPanel.add(leftPoint1);
pointPanel.add(leftPoint2);
pointPanel.add(leftPoint3);
pointPanel.add(rightPoint1);
pointPanel.add(rightPoint2);
pointPanel.add(rightPoint3);
pointPanel.add(按钮行);
主窗口.setLayout(newBorderLayout());
主窗口.add(pointPanel,BorderLayout.CENTER);
主窗口.setVisible(true);
主窗口.validate();
主窗口.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidset主窗口(JFrame主窗口)
{
this.主窗口=主窗口;
}
publicJFrameget主窗口()
{
return主窗口;
}
publicvoidsetA标签(JLabela标签)
{
this.a标签=a标签;
}
publicJLabelgetA标签()
{
returna标签;
}
publicvoidsetA(JTextFielda)
{
this.a=a;
主窗口.validate();
}
publicJTextFieldgetA()
{
returna;
}
publicvoidsetB标签(JLabelb标签)
{
this.a标签=a标签;
主窗口.validate();
}
publicJLabelgetB标签()
{
returnb标签;
}
publicvoidsetB(JTextFieldb)
{
this.b=b;
主窗口.validate();
}
publicJTextFieldgetB()
{
returnb;
}
publicvoidsetTn_2标签(JLabelTn_2标签)
{
this.Tn_2标签=Tn_2标签;
主窗口.validate();
}
publicJLabelgetTn_2标签()
{
returnTn_2标签;
}
publicvoidsetTn_2(JTextFieldTn_2)
{
this.Tn_2=Tn_2;
主窗口.validate();
}
publicJTextFieldgetTn_2()
{
returnTn_2;
}
publicvoidsetSe标签(JLabelSe标签)
{
this.Se标签=Se标签;
主窗口.validate();
}
publicJLabelgetSe标签()
{
returnSe标签;
}
publicvoidsetSe(JTextFieldSe)
{
this.Se=Se;
主窗口.validate();
}
publicJTextFieldgetSe()
{
returnSe;
}
publicvoidsetN标签(JLabeln标签)
{
this.n标签=n标签;
主窗口.validate();
}
publicJLabelgetN标签()
{
returnn标签;
}
publicvoidsetN(JTextFieldn)
{
this.n=n;
主窗口.validate();
}
publicJTextFieldgetN()
{
returnn;
}
publicvoidsetAverageOfX标签(JLabelaverageOfX标签)
{
this.averageOfX标签=averageOfX标签;
主窗口.validate();
}
publicJLabelgetAverageOfX标签()
{
returnaverageOfX标签;
}
publicvoidsetAverageOfX(JTextFieldaverageOfX)
{
this.averageOfX=averageOfX;
主窗口.validate();
}
publicJTextFieldgetAverageOfX()
{
returnaverageOfX;
}
publicvoidsetLxx标签(JLabellxx标签)
{
this.lxx标签=lxx标签;
主窗口.validate();
}
publicJLabelgetLxx标签()
{
returnlxx标签;
}
publicvoidsetLxx(JTextFieldlxx)
{
this.lxx=lxx;
主窗口.validate();
}
publicJTextFieldgetLxx()
{
returnlxx;
}
publicvoidset左端点标签(JLabel左端点标签)
{
this.左端点标签=左端点标签;
主窗口.validate();
}
publicJLabelget左端点标签()
{
return左端点标签;
}
publicvoidset左端点(JTextField左端点)
{
this.左端点=左端点;
主窗口.validate();
}
publicJTextFieldget左端点()
{
return左端点;
}
publicvoidset右端点标签(JLabel右端点标签)
{
this.右端点标签=右端点标签;
主窗口.validate();
}
publicJLabelget右端点标签()
{
return右端点标签;
}
publicvoidset右端点(JTextField右端点)
{
this.右端点=右端点;
主窗口.validate();
}
publicJTextFieldget右端点()
{
return右端点;
}
publicvoidset可控否标签(JLabel可控否标签)
{
this.可控否标签=可控否标签;
主窗口.validate();
}
publicJLabelget可控否标签()
{
return可控否标签;
}
publicvoidset左端点dY原始值(JLabel左端点dY原始值)
{
this.左端点dY原始值=左端点dY原始值;
主窗口.validate();
}
publicJLabelget左端点dY原始值()
{
return左端点dY原始值;
}
publicvoidset左端点根1标签(JLabel左端点根1标签)
{
this.左端点根1标签=左端点根1标签;
主窗口.validate();
}
publicJLabelget左端点根1标签()
{
return左端点根1标签;
}
publicvoidset左端点根1值(JTextField左端点根1值)
{
this.左端点根1值=左端点根1值;
主窗口.validate();
}
publicJTextFieldget左端点根1值()
{
return左端点根1值;
}
publicvoidset左端点根1dY检验值(JLabel左端点根1dY检验值)
{
this.左端点根1dY检验值=左端点根1dY检验值;
主窗口.validate();
}
publicJLabelget左端点根1dY检验值()
{
return左端点根1dY检验值;
}
publicvoidse
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一元 线性 回归 模型 控制 方程 求解