java实验求方程的根总结_数值分析实验报告之二分法求根java.doc

41528d3028836879cd698677c3999917.gif数值分析实验报告之二分法求根java.doc

《数值分析》实验报告实验三非线性方程求根一、实验目的1.掌握二分法、牛顿迭代法等常用的非线性方程迭代算法;2.培养编程与上机调试能力。二、实验要求1.用C语言设计出二分法和牛顿法的程序,并且选择不同的初值,观察所需的迭代次数和迭代结果。三、实验原理1.二分法计算f(x)=0的二分法如下:①输入求根取间[a,b]和误差控制量ε,定义函数f(x)。如果,转②;否则退出选用其它求根方法0)(bfa②当|a-b|>ε时,计算中点x=(a+b)/2以及f(x)的值;分情况处理:停止计算,,转④|)(|xfx*:修正区间0a],[,ba:修正区间)(bfx][x③2*④输出近似根*x四、实验内容1.用二分法求方程在区间[1.0,1.5]内的一个实根,要求精确到小数01)(3f点后2位。五、实验结果输入零点所在区间时:输入错误的区间时:二分法程序代码:importjava.awt.Container;importjava.awt.Dimension;importjava.awt.EventQueue;importjava.awt.GridLayout;importjava.awt.Toolkit;importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.Color;importjavax.swing.JLabel;importjava.awt.Font;importjavax.swing.JTextField;importjavax.swing.JButton;importjavax.swing.SwingConstants;importjava.awt.FlowLayout;importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;publicclassErfenfaaimplementsActionListener{JFrameframe;privateJTextFieldtextField1;privateJTextFieldtextField2;privateJTextFieldtextField3;privateJTextFieldtextField4;JPanelpanel_1,panel_2,panel_22,panel_3,panel_4;JLabellabel1,label2,labelaa,labelbb,label_2,label_3;JButton,cancel;/***Launchtheapplication.*/publicstaticvoidmain(String[]args){EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{newErfenfaa();}catch(Exceptione){e.printStackTrace();}}});}/***Createtheframe.*/publicErfenfaa(){frame=newJFrame(“二分法解方程“);frame.setSize(380,480);frame.setVisible(true);frame.setContentPane(createcontentPane());frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);centerFrame();//frame.setBounds(100,100,396,300);frame.setResizable(false);}publicContainercreatecontentPane(){ContainercontentPane=frame.getContentPane();contentPane.setLayout(newGridLayout(5,1,5,0));//由上至下4行1列panel_1=newJPanel();//面板panel_1放置label1和label2panel_1.setLayout(newFlowLayout(FlowLayout.CENTER,5,35));panel_1.setBackground(Color.WHITE);label1=newJLabel(“二分法解方程“);label1.setFont(newFont(“宋体“,Font.BOLD,18));panel_22=newJPanel();//面板panel_1放置label1和label2panel_22.setLayout(newFlowLayout(FlowLayout.CENTER,5,35));panel_22.setBackground(Color.WHITE);label2=newJLabel(“y=x^3-x-1“);label2.setBounds(180,41,101,24);panel_2=newJPanel();//面板jpanel_2放置a,b,控制误差量panel_2.setBackground(Color.WHITE);panel_2.setLayout(null);labelaa=newJLabel(“请输入区间[a,b]中的a:“);labelaa.setFont(newFont(“宋体“,Font.BOLD,12));labelaa.setBounds(80,10,172,15);textField1=newJTextField(10);//textField1输入a的值textField1.setBounds(219,7,42,21);labelbb=newJLabel(“请输入区间[a,b]中的b:“);labelbb.setFont(newFont(“宋体“,Font.BOLD,12));labelbb.setBounds(80,38,172,15);textField2=newJTextField(10);//textField2输入b的值textField2.setBounds(219,35,42,21);label_2=newJLabel(“请输入控制误差量:“);label_2.setFont(newFont(“宋体“,Font.BOLD,12));label_2.setBounds(80,63,117,15);textField3=newJTextField(10);//textField3输入控制误差量textField3.setBounds(191,60,66,21);panel_3=newJPanel();//面板panel_3放置确定和取消按钮panel_3.setBackground(Color.WHITE);panel_3.setLayout(newFlowLayout(FlowLayout.CENTER,20,30));=newJButton(“确定“);//确定按钮.addActionListener(this);.se

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值