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

📄 main.cpp

📁 二分法
💻 CPP
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include<MATH.H>
#include "config.h"
float f(float,float,int );

int main(void)
{// add user source code 
  static int i;
  float E=11.9;
 

//二分法
  float ta=0,tb=1372;
  static float tc;
  static float ff;


 for(i=1;tb-ta>=0.01;i++)           //满足精度就退出
 {

	 tc=(ta+tb)/2;
     ff=f(tc,E,8);
/*	 if (-0.01<ff<0.01)            //这样是错误的
	 {
		 
		 break;
	 }*/
	 
	 if (ff>0.0)
		tb=tc;
	 else
		ta=tc;
	

 }

 //比较
/* float ta_=0,tb_=1372;
 float tc_;
 for(int j=1;tb_-ta_>0.01;j++)           //满足精度就退出
 {

	 tc_=(ta_+tb_)/2;
	 if (f(tc_,E,7)==0)
	 {
		 cout<<"result: "<<tc_<<endl;
		 break;
	 }
	 else
	 {
		  if (f(tc_,E,7)>0)
				tb_=tc_;
		  else
				ta_=tc_;
	 }
 }*/

	


    return 0;
}




 //返回函数值
 // func:
 // par:
 // return

float f(float t,float E,int n)
{
	//  K型热电偶分度系数
	int i;
	float f;
    static float a[9]={-1.8633063273e-2,3.8918344612e-2,1.6645154356e-5,
					-7.8702374448e-8,2.2835785557e-10,-3.5700231256e-13,
					2.9932909136e-16,-1.2849848798e-19,2.2239974336e-23};


  /*****形成求解方程****/
	float s=0.125*exp(-0.5*pow((t-127)/65,2));
	for(i=0;i<=n;i++)
		 s=s+a[i]*(pow(t,i));
	
	f=s-E;
	return f;
 /*********************/
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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