非线性方程的数值解法
时间:2026-01-27
时间:2026-01-27
通过本实验的学习,应掌握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;熟悉几种基本的常用的解非线性方程的数值的方法,如二分法、迭代法等,了解它们各自的优缺点及适用范围,并能用来解决其他实际问题; 熟悉非线性方程的数值的程序编制。
南昌航空大学
数学与信息科学学院
实 验 报 告
课程名称: 计 算 方 法 实验名称: 非线性方程的数值解法 实验类型: 验证性√ 综合性□ 设计性□ 实验室名称: D 504 班级学号: 08061115 学生姓名: 杨朝峰 任课教师(教师签名): 成 绩: 实验日期: 2009-10-16
通过本实验的学习,应掌握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;熟悉几种基本的常用的解非线性方程的数值的方法,如二分法、迭代法等,了解它们各自的优缺点及适用范围,并能用来解决其他实际问题; 熟悉非线性方程的数值的程序编制。
南昌航空大学数学与信息科学学院实验报告
一、实验目的 通 过 本 实 验的学习,应掌握 非线性方程的数值解法的 基本思想和原理,深刻认识 现 实 中 非 线 性 方 程 数 值的意义;明确代数精度的概念 ;熟悉几种基本的常用 的解非线性方 程 的 数 值 的 方 法 ,如二分法、迭代法 等,了解它 们各自的优缺点及适用范围,并能用来解决其他实 际 问 题 ; 熟 悉非线性方程的数值 的程序编制。
二、实验题目 试计算方程发 f(x)=x 1. 2.4
+2x -x+1=0 于[-2,1]的所有实根,要求
3
<10-6。
运用非线性方程数值解法的二分法解题。 运用非线性方程数值解法的迭代法解题
三、实验原理(包括所使用方法的原理、公式和程序框图)1.原理: ①对于连续的函数 f(x),由罗尔中值定理广泛地推出利用含根区间[a,b]逐步分半,检 查函数值符号的变化,以便确定含根的充分小区间而得到二分法; ②用函数 f(x)构造出一个 x=g(x),再选取方程根的一个初始近似值 x0,按 xk+1=g(xk)逐 次代入法。 2.公式: 利用非线性方程的其中两种方法二分法以及迭代法。 3.程序框图: ①利用二分法的程序框图如框图 1: ②利用迭代法的程序框图如框图 2:
1
通过本实验的学习,应掌握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;熟悉几种基本的常用的解非线性方程的数值的方法,如二分法、迭代法等,了解它们各自的优缺点及适用范围,并能用来解决其他实际问题; 熟悉非线性方程的数值的程序编制。
南昌航空大学数学与信息科学学院实验报告
输入初始值 x 输入区间 a,b 的值
K=1,2,…,N0
调用函数 root()
计算 xk+1
调用函数 cmit() 输出 x 是
<10-6
调用函数 function ()
X1←x
k≦100否
<10
-6
输出没有达到精度 要求信息
成 立 输出 x 的值
输出没有数值信息
框图 1
二分法
框图 2
迭代法
2
通过本实验的学习,应掌握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;熟悉几种基本的常用的解非线性方程的数值的方法,如二分法、迭代法等,了解它们各自的优缺点及适用范围,并能用来解决其他实际问题; 熟悉非线性方程的数值的程序编制。
南昌航空大学数学与信息科学学院实验报告
3.源程序代码: ①利用二分法的源程序如下: #include<stdio.h> #include<math.h> float function(float x); /*函数 f(x)的申明*/
main() { float root1(float x1,float x2); /*解得近似值函数的申明*/ float root2(float x1,float x2); /*解得近似值函数的申明*/ float a=-2,b=1,c1,c2; c1=root1(a,b); /*解得[-2,0]近似值函数的调用*/ c2=root2(a,b); /*解得[0,1]近似值函数的调用*/ printf("root is %10.6f\n%10.6f\n",c1,c2); /*输出结果*/ }float function(float x) { float y; y=pow(x,4)+2*pow(x,3)-x-1; return y; } float cmid(float x1,float x2) { float c; c=(x1+x2)/2; return (c); } float root1(float x1,float x2) { float cmid(float x1,float x2); float x,y,y1; do { x=cmid(x1,x2); y1=function(x1); y=function(x); if(y*y1<0) x2=x; else x1=x; }while(fabs(y)>=1e-6); return (x); } float root2(float
x1,float x2) { float cmid(float x1,float x2); float x,y,y2; /*计算两个数的中值*/ /*函数 f(x)的定义*/
/*解得[-2,0]近似值函数的定义*/
/*解得[0,1]近似值函数的定义*/
3
通过本实验的学习,应掌握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;熟悉几种基本的常用的解非线性方程的数值的方法,如二分法、迭代法等,了解它们各自的优缺点及适用范围,并能用来解决其他实际问题; 熟悉非线性方程的数值的程序编制。
南昌航空大学数学与信息科学学院实验报告
do { x=cmid(x1,x2); y2=function(x2); y=function(x); if(y*y2<0) x1=x; else x2=x; }while(fabs(y)>=1e-6);/*用精度来作为循环结束的条件*/ return (x); ②利用迭代法的源程序如下: #include<stdio.h> #include<math.h> main() { float function(float x); float x1, …… 此处隐藏:2259字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:奇门遁甲预测足彩讲义
下一篇:转速测量显示逻辑电路设计