非线性方程的数值解法

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

非线性方程的数值解法.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219