




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数值分析实验报告 实验三 非线性方程求根一、实验目的1掌握二分法、牛顿迭代法等常用的非线性方程迭代算法;2培养编程与上机调试能力。二、实验要求1用C语言设计出二分法和牛顿法的程序,并且选择不同的初值,观察所需的迭代次数和迭代结果。三、实验原理1二分法计算f(x)=0的二分法如下: 输入求根取间a,b和误差控制量,定义函数f(x)。 如果 ,转;否则退出选用其它求根方法 当|a-b|>时,计算中点x=(a+b)/2以及f(x)的值; 分情况处理 :停止计算,转:修正区间 :修正区间 输出近似根四、实验内容1.用二分法求方程在区间1.0,1.5内的一个实根,要求精确到小数点后2位。五、实验结
2、果输入零点所在区间时:输入错误的区间时: 二分法程序代码:import java.awt.Container;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.GridLayout;import java.awt.Toolkit;import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.Color;import javax.swing.JLabel;import java.awt.Font;import javax.swing.J
3、TextField;import javax.swing.JButton;import javax.swing.SwingConstants;import java.awt.FlowLayout;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class Erfenfaa implements ActionListenerJFrame frame;private JTextField textField1;private JTextField textField2;private JTe
4、xtField textField3;private JTextField textField4; JPanel panel_1 ,panel_2 ,panel_22,panel_3 ,panel_4 ; JLabel label1,label2,labelaa,labelbb,label_2,label_3; JButton submit,cancel;/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run
5、() try new Erfenfaa(); catch (Exception e) e.printStackTrace(););/* * Create the frame. */public Erfenfaa() frame = new JFrame("二分法解方程");frame.setSize(380,480);frame.setVisible(true);frame.setContentPane(createcontentPane();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);centerFrame()
6、;/frame.setBounds(100, 100, 396, 300);frame.setResizable(false);public Container createcontentPane()Container contentPane=frame.getContentPane();contentPane.setLayout(new GridLayout(5,1,5,0);/由上至下 4行1列 panel_1 = new JPanel();/面板panel_1放置label1和label2 panel_1.setLayout(new FlowLayout(FlowLayout.CENTE
7、R,5,35);panel_1.setBackground(Color.WHITE);label1 = new JLabel("二分法解方程");label1.setFont(new Font("宋体", Font.BOLD, 18);panel_22= new JPanel();/面板panel_1放置label1和label2 panel_22.setLayout(new FlowLayout(FlowLayout.CENTER,5,35); panel_22.setBackground(Color.WHITE); label2 = new JLab
8、el("y=x3-x-1");label2.setBounds(180, 41, 101, 24); panel_2 = new JPanel();/面板jpanel_2放置a,b,控制误差量 panel_2.setBackground(Color.WHITE);panel_2.setLayout(null);labelaa= new JLabel("请输入区间a,b中的a:"); labelaa.setFont(new Font("宋体", Font.BOLD, 12);labelaa.setBounds(80, 10, 172,
9、15);textField1 = new JTextField(10);/textField1输入a的值 textField1.setBounds(219, 7, 42, 21);labelbb = new JLabel("请输入区间a,b中的b:");labelbb.setFont(new Font("宋体", Font.BOLD, 12);labelbb.setBounds(80, 38, 172, 15);textField2 = new JTextField(10);/textField2输入b的值 textField2.setBounds(21
10、9, 35, 42, 21);label_2 = new JLabel("请输入控制误差量:");label_2.setFont(new Font("宋体", Font.BOLD, 12);label_2.setBounds(80, 63, 117, 15);textField3 = new JTextField(10); /textField3输入控制误差量textField3.setBounds(191, 60, 66, 21); panel_3 = new JPanel();/面板panel_3放置确定和取消按钮panel_3.setBackgro
11、und(Color.WHITE);panel_3.setLayout(new FlowLayout(FlowLayout.CENTER,20,30);submit = new JButton("确定");/确定按钮submit.addActionListener(this);submit.setHorizontalAlignment(SwingConstants.CENTER);cancel = new JButton("取消");/取消按钮cancel.addActionListener(this);cancel.setHorizontalAlignm
12、ent(SwingConstants.CENTER);panel_4 = new JPanel();/面板panel_4放置“方程解”标签和输出解文本块panel_4.setBackground(Color.WHITE);panel_4.setLayout(new FlowLayout(FlowLayout.CENTER,5,30);label_3 = new JLabel("方程解为:");label_3.setFont(new Font("宋体", Font.BOLD, 12);label_3.setBounds(24, 8, 65, 15);tex
13、tField4 = new JTextField();/输出解或区间范围不对textField4.setBounds(99, 5, 97, 15);textField4.setColumns(25);panel_1.add(label1);panel_22.add(label2);panel_2.add(labelaa);panel_2.add(textField1);panel_2.add(labelbb);panel_2.add(textField2);panel_2.add(label_2);/控制误差量panel_2.add(textField3);panel_3.add(submit
14、);panel_3.add(cancel);panel_4.add(label_3);panel_4.add(textField4);contentPane.add(panel_1);contentPane.add(panel_22);contentPane.add(panel_2); contentPane.add(panel_3);contentPane.add(panel_4);return contentPane;public void centerFrame()/窗口居中 int x,y,screenWidth,screenHeight,frameWidth,frameHeight;
15、 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); screenWidth=screenSize.width;/取得屏幕宽度和高度 screenHeight=screenSize.height; frameWidth=frame.getWidth(); frameHeight=frame.getHeight(); x=(screenWidth-frameWidth)/2; y=(screenHeight-frameHeight)/2; frame.setLocation(x,y);public void acti
16、onPerformed(ActionEvent e) /事件触发JButton button=(JButton)e.getSource();float a,b,p,w;if(button=submit)String o=textField1.getText();String l=textField2.getText();String m=textField3.getText(); a= Float.parseFloat(o); b= Float.parseFloat(l); p= Float.parseFloat(m); w=b-a;if(z(a,b)=true)textField4.setT
17、ext(String.valueOf(fun(w,b,a,p);/浮点型强制转换为字符型 if(z(a,b)=false)textField4.setText(String.valueOf("方程值不在所输入的区间内,请选择其他方法"); if(button=cancel)textField1.setText("");textField2.setText("");textField3.setText(""); public static boolean z(float a,float b)/判断区间是否包括零点 float a11=y(a); float a21=y(b); if(a11*a21)<0) return true; else return false; public static float y(float x)/设置y的函数,y=x3-x-1 float y;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁资产支持专项计划担保协议(2025年版)
- 二零二五年度汽修店转让合同:含维修业务数据共享与市场分析
- 2025年度旅行社旅游保险代理经营权承包合同
- 二零二五年度孩子户外运动组织服务合同
- 2025年度特色餐饮店铺铺面投资合同
- 二零二五年度公司员工业绩贡献对赌协议书
- 2025年度跨境电商履行合同环节风险控制合同
- 2025年度涉税法律诺成合同与税务风险管理实施合同
- 2025年度绿色建筑租赁合同解除及环保责任履行函
- 二零二五年度公寓租赁及家具租赁合同
- 《孙子兵法》与执政艺术学习通超星期末考试答案章节答案2024年
- 生产安全重大事故隐患检查表(根据住建部房屋市政工程生产安全重大事故隐患判定标准(2022版)编制)
- DB34T∕ 2503-2015 耐磨铸铁件可比单位综合能耗限额及计算方法
- 健康史采集及问诊的方法技巧(健康评估)
- 北师大版数学八年级下册全册教案及反思
- 项目一 智慧物流认知
- DL∕T 1917-2018 电力用户业扩报装技术规范
- 2024年辽宁高考化学真题试题(原卷版+含解析)
- JT-T-496-2018公路地下通信管道高密度聚乙烯硅芯塑料管
- A型肉毒素注射美容记录
- 关于计算机发展及未来发展趋势的论文
评论
0/150
提交评论