⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 二分法.cpp

📁 大量数值计算的算法
💻 CPP
字号:
//*************************************
//程序功能:二分法  求线性方程的解
//作    者:杭永东
//日    期: 2002.03.25
//*************************************
#include <math.h>
#include <iostream.h>
#include <stdio.h>
//*************************************
// 注:更改此宏定义的表达式可以解不同的线性方程
//   根据宏定义要求,x必须以(x)形式出现大式中
//*************************************

#define f(x) 676039.0L*pow((x),12.0L)-1939938.0L*pow((x),10.0L)+\
             2078505.0L*pow((x),8.0L)-1021020.0L*pow((x),6.0L)+\
			 225225.0L*pow((x),4.0L)-18018.0L*pow((x),2.0L)+231.0L

int NoAnswer(long double a,long double b)
{
	if(((f(a))*(f(b)))>0.0L)
	{
		cout<<"There isn't answer between "<<a<<" and "<<b;
		return 1;
	}
	else
		return 0;
}
main()
{
	long double a,b,e,x;
	int n;
	cout<<"Please input a,b,e:";
	cin>>a>>b>>e;
//	if(NoAnswer(a,b))
//		return;
	for(x=(0.5L)*(a+b),n=0;f(x)!=0.0L;x=(0.5L)*(a+b),n++)
	{
		printf("\n%0.9f",x);
		if((f(a))*(f(x))<0.0L)
			b=x;
		else
			a=x;
        if((((b-a)<0.0L)? (a-b): (b-a))<e)
			break;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -