数值计算大作业:非线性方程求根(二分法、牛顿法、弦截法在Matlab实现)

作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业。

    我把二分法、牛顿法、弦截法求解非线性方程求根的数值计算作业在MATLAB中编程实现。具体的程序详细标注后放在文章附录了,算法数学原理也一并放在文中了。需要的同学自取。下文为作业详解

题目:给定方程:sin10x-xe-x=x,完成以下工作

1.绘出函数f(x)=sin10x-xe-x-x的图形,确定有根区间。

函数图像如下图,可以确定函数有三个根,区间分别为[-0.3,-0.2],[-0.1,0.1],[0.2,0.3].

2.使用二分法求出方程的根,要求精度ε10-8

二分法数学原理:

对于区间[a,b]上连续不断且f(a)*f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。

给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:

1 确定区间[a,b],验证f(a)·f(b)<0,给定精确度ξ.

2 求区间(a,b)的中点c.

3 计算f(c).

(1) 若f(c)=0,则c就是函数的零点;

(2) 若f(a)·f(c)<0,则令b=c;

(3) 若f(c)·f(b)<0,则令a=c.使用 Newton 法求出方程的根,要求精度

(4) 判断是否达到精确度ξ:即若|a-b|<ξ,则得到零点近似值a(或b),否则重复2-4.

具体运行程序在附录中,此处只展示结果

计算结果如下表所示

有根区间

二分次数

f(x)=0的根x*

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值