二分法——求近似方程的解

本文通过实例详细介绍了如何使用二分法求解方程的近似解,包括在不同区间内的应用,如x^3+4x-10=0在[1,2],e^x+10x-2=0在[0,1],以及8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y在[0,100]。强调了二分法的适用条件和精度判断的重要性。" 111361662,9336631,Go语言教程:字典与字符串操作详解,"['Go', '编程语言', '数据结构', '字符串操作']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二分法求近似方程的解的原理我就不讲了,就是类似于零点存在定理之类的东西。

所以直接以实例来讲述:

例1:用二分法求方程x^3+4x-10=0在区间[1,2]内的根(精确到0.00001)

首先我们要判断一下能不能用二分法来求解,把首末两端代入式子中去计算可以得出,代入1得-6,代入2得6,满足二分求方程的解;

#include <stdio.h>
#include <math.h>
double f(double x)
{
	return pow(x,3)+4*x-10;
}
int main()
{
	double a=1,b=2,limit=0.00001;//a,b为区间,limit为精确程度
	if(f(a)*f(b)>0)
		printf("无法用二分法求解\n"); //假设f(a)=7,f(b)=13,f(x)=0?
	else
	{
		while((b-a)>limit)
		{
			if(f((a+b)/2)*f(b)<0) //一边为正,一边为负
				a=(a+b)/2;
			else //同号
				b=(a+b)/2;
		}
		printf("%.5f\n%.5f",a,b);
	}
	return 0;
}

如果mid*右边小于0,那么则说明零点肯定是在右半部分,所以mid移到右边去。

如果mid*左边小于0,那么则说明零点肯定是在左半部分,所以mid移到左边去。

至于上面那个函数调用是直接返回了方程,这样就会比较简便了。

 

例二:

C语言在区间[0,1]内用二分法求方程e^x+10x-2=0的近似根,误差不超过0.5*10^(-3)

#include <stdio.h> 
#i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值