求教各位大神Matlab如何实现通过割弦二分法求方程的近似解下列方程在区间[-2,-1]内的一个实根近似值,问题如下图

8278人阅读
课程实验(6)
题目:用牛顿法求方程x-cos(x)=0的实根(精确到1E-6)。
(1)要求用函数调用。
(2)进一步研究和弦截法作比较。
算法分析:
(1)&&&&&& 此题是利用牛顿方法解一元非线性方程的根。(牛顿法是把非线性方程局部线性化的一种方法,它在单根附近具有较高的收敛速度。)所以首先我们应先给出估计的根,先对方程x-cos(x)=0变形,令y1=x,y2=cos(x),则两函数图象的交点,就是方程x-cos(x)=0的根,这里利用Matlab作图估计根的值。
在Matlab命令行中输入,并运行:
&&x=-2:0.01:2;
&&y1=cos(x);
&&plot(x,y1,x,y2);
可得下图:
从图中可以很容易得到根x的初值可选0.6。
(2)利用牛顿法的迭代公式x1=x0-(f(x0)/f’(x0));这里首先取x0=0.6,代入迭代公式,然后判断x1与x0之差的绝对值是否小于精度,如果小于精度,则停止,即得出根x的值,如果不小于精度,则继续迭代,直到符合精度为止。
Matlab代码如下:
(1)funNewton.m函数文件为:
%此文件为被调函数文件。
function[y,dirv_y]=funNewton(x)
%y与dirv_y为函数返回的参数,x为调用时的传递参数。
y=x-cos(x);
dirv_y=1+sin(x);
%dirv_y为y的一阶导函数
(2)Newton.m脚本文件为:
%清除所有变量
Error=1e-6;
%根所要求的误差精度
formatlong
%格式化此行一下的变量。
%迭代次数20次
[y,dirv_y]=funNewton(x);
%调用函数文件
%xk可保留前一次x的值。
x=x-y/dirv_y;
%牛顿法的核心,即此迭代公式。
if(abs(xk-x)&=Error)
%判断当此x的值与前一次x的值即xk的差值,即误差是否小于题目给定的误差。
%输出根x的值。
在Matlab的命令行中输入(因为我的程序文件保存为:Newton.m脚本文件,funNewton.m函数文件):
结果分析:
在Matlab的命令行中输入:
&&format long
&&fzero('x-cos(x)',0)
经比较可知:牛顿法的结果有一定的误差,但是牛顿方法由于在单根附近有良好的收敛性,所以与其他方法得出的结果相比误差较小。但是牛顿方法有个缺点:它只在根附近局部收敛。所以所我们在给定X的初值时尤为重要,如果给的初值离真值过远。那么用牛顿法可能永远也找不到此方程的解。对于这种情况,我们可以先利用工具软件(如:Matlab)画出草图,确定根的大致位置。牛顿法的每一步迭代都要计算一次导数值,而在计算机中,计算一次导数的近似值比计算函数值要麻烦的多。所以我们可以用弦截法,其迭代公式为:x2=x1-((x1-x0)/f(x1)-f(x0))*f(x1).
当f(x)在x*的某一个邻域内具有二阶连续导数,且f’(x)!=0,初&#2落在此邻域内,弦截
法是收敛的。
此文为本人原创!如需使用,请注明出处!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:56827次
积分:1482
积分:1482
排名:千里之外
原创:34篇
评论:48条
(5)(2)(2)(1)(1)(3)(1)(2)(1)(2)(2)(1)(11)(1)(1)(3)(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&0次下载&&|&&总297页&&|
您的计算机尚未安装Flash,点击安装&
阅读已结束,如需下载到电脑,请使用积分()
下载:90积分
0人评价4页
0人评价16页
1人评价2页
0人评价122页
1人评价242页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
若此文档涉嫌侵害了您的权利,请参照说明。
评价文档:
下载:90积分计算方法及其MATLAB实现作&&&&&&&者&&
出&&版&&社&&
出版日期&&2009年8月
I&&S&&B&&N &0
页&&&&&&&数&&306 装帧&&平装 开本&&16
版&&&&&&&次&&1
定&&&&&&&价&&¥28
计算方法及其MATLAB实现
¥18.80淘书价更新:1001天前
计算方法及其MATLAB实现
¥20.20北发价更新:1001天前
计算方法及其MATLAB实现(面向21世纪高职高专系列规划教材)
¥21.50博库价更新:1001天前
计算方法及其MATLAB实现
¥22.20亚马逊价更新:976天前
计算方法及其MATLAB实现
¥15.40蔚蓝价更新:993天前
计算方法及其MATLAB实现
¥19.80互动价更新:1天前
计算方法及其MATLAB实现
¥21.60文轩网价更新:1001天前
计算方法及其MATLAB实现
¥22.10BooksChina价更新:1241天前
计算方法及其MATLAB实现(高职)
¥21.00当当价更新:437天前
面向21世纪高职高专系列规划教材:计算方法及其MATLAB实现
¥24.30京东价更新:369天前
第1章 绪论 1.1 课程的内容、意义和特点 1.2 误差的基本概念  1.2.1 误差的来源  1.2.2 误差与有效数字 1.3 数值计算中的误差估计  1.3.1 一元函数的误差估计  1.3.2 二元函数的误差估计  1.3.3 四则运算的误差 1.4 设计算法的若干原则 习题1第2章 非线性方程的数值解法 2.1 引言  2.1.1 问题的背景  2.1.2 一元方程根的隔根区间 2.2 二分法 2.3 迭代法  2.3.1 迭代法的基本思想  2.3.2 根的存在性与迭代法的收敛性  2.3.3 局部收敛性与收敛速度 2.4 迭代收敛的加速方法  2.4.1 迭代一加速方法  2.4.2 埃特金加速方法 2.5 牛顿迭代法  2.5.1 牛顿迭代法及其收敛性  2.5.2 简化牛顿法 2.6 弦截法  2.6.1 单点弦截法  2.6.2 双点弦截法 2.7 MATLAB解法及主要程序  2.7.1 MATLAB算法  2.7.2 主要程序 习题2 数值实验题第3章 解线性方程组的直接法 3.1 高斯消去法  3.1.1 消去法的计算过程  3.1.2 高斯消去法的矩阵解释  3.1.3 高斯消去法的运算量 3.2 主元素消去法  3.2.1 列主元素法  3.2.2 全主元素法  3.2.3 高斯一约当消去法 3.3 三角分解法  3.3.1 LU分解法  3.3.2 对称正定矩阵的平方根法  3.3.3 解三对角方程组的追赶法 3.4 向量范数与矩阵范数  3.4.1 向量范数  3.4.2 矩阵范数 3.5 方程组的敏感性、条件数 3.6 MATLAB解法及主要程序  3.6.1 解方程组的MATLAB命令及函数  3.6.2 主要程序 习题3 数值实验题第4章 解线性方程组的迭代法 4.1 基本迭代法  4.1.1 Jacobi迭代法  4.1.2 Gauss-Seidel迭代法  4.1.3 超松弛迭代法 4.2 迭代法的收敛性  4.2.1 单点线性迭代法的基本定理  4.2.2 特殊方程组的几个常用判别条件 4.3 MATLAB解法及主要程序  4.3.1 有关的MATLAB函数  4.3.2 主要程序 习题4 数值实验题第5章 矩阵特征值与特征向量的计算 5.1 幂法与反幂法  5.1.1 幂法  5.1.2 幂法的加速  5.1.3 反幂法 5.2 Jacobi方法 5.3 QR算法 5.4 MATL,AB解法及主要程序  5.4.1 相关命令  5.4.2 主要程序 习题5 数值实验题第6章 插值法第7题 最小二乘法与曲线拟合第8章 数值积分与数值微分第9章 常微分方程初值问题的数值解法附录A MATLAB简介附录B 部分习题参考答案参考文献
本书是为普通高等院校理工科应用数学和计算机专业的学生学习“计算方法”课程所编写的教材,全书共9章,内容包括:误差分析、非线性方程的数值解法、解线性方程组的直接法和迭代法、矩阵特征值与特征向量的计算、插值法、最小二乘法与曲线拟合、数值积分与数值微分、常微分方程初值问题的数值解法。本书不仅介绍各种数值算法的数学原理,而且强调了这些算法在计算机上的实现及其在现实中的应用,由此结合MATLAB数值计算软件在相应各章都给出了MATLAB算法及主要程序,并附有习题及数值实验题,书末附有MAT-LAB简介及部分习题参考答案,全书阐述严谨,条理清晰,通俗易懂,便于教学。本书也可作为其他理工专业学生学习“计算方法”课程的教材或参考书,亦可为科研和工程技术工作者解决数值计算问题提供参考。
第1章 绪论1.1 课程的内容、意义和特点科学实验方法、科学理论方法和科学计算方法是现代社会的三类科学方法。本书的目的是介绍一些常用的、基本的科学计算方法。其内容可以概括为“用计算机求解数学问题的数值方法和理论”,简称“数值计算方法”。这里所谓数值计算方法,是指用这些计算方法所给出的答案一般是所求真解的某些近似值。为了具体说明计算方法的研究对象,我们考察用计算机解决科学计算问题时经历的几个过程:  实际问题→数学模型→数值计算方法→程序设计→上机计算求出结果由实际问题的提出到上机求得问题解答的整个过程都可看做是应用数学的范畴。如果细分的话,由实际问题应用有关科学知识和数学理论建立数学模型这一过程,通常作为应用数学的任务。而根据数学模型提出求解的数值计算方法直到编出程序上机算出结果,这一过程是计算数学的任务,也是计算方法研究的对象。计算方法的内容包括函数的数值逼近、数值微分和数值积分、非线性方程数值解、数值线性代数、常微分方程数值解等,它们都是以数学问题为研究对象的,只是计算方法不像纯数学那样只研究数学本身的理论,而是把理论与计算紧密结合,着重研究数学问题的数值方法及其理论。计算方法是一门内容丰富,研究方法深刻,有自身理论体系的课程,既有纯数学高度抽象性与严密科学性的特点,又有应用的广泛性与实际试验的高度技术性的特点,是一门与计算机紧密结合的实用性很强的数学课程,其方法和理论是我们解决某些实际问题时必须要探讨的。  ……

我要回帖

更多关于 近似数 的文章

 

随机推荐