栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】用牛顿迭代(切线)法/二分法求下面方程的根:

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】用牛顿迭代(切线)法/二分法求下面方程的根:

方程:2x³-4x²+3x-6=0;

切线法_百度百科

#include
#include
int main(){
	float x=1.5,x1,y,k;
	//牛顿迭代法(牛顿切线法) 
	while(1){
		y=x*(2*x*(x-2)+3)-6;//求该点纵坐标值 
		if(y==0)break;		//若该点纵坐标值为0即得到零点,结束循环 
		k=2*x*(3*x-4)+3;	//求该点斜率 
		x1=x-y/k;			//求得切线与横坐标的交点 
		x=x1;				//重新赋值进行迭代 
	}
	printf("方程在1.5附近的根为:%f",x1);
	return 0;
}

二分法:二分法(数学领域术语)_百度百科

#include
int main(){
	float x1=-10,x2=10,x;
	float y1,y2,y;;
	while(1){
		x=(x1+x2)/2;		//计算区间中点 
		y=x*(2*x*(x-2)+3)-6;	//计算中点函数值 
		y1=x1*(2*x1*(x1-2)+3)-6;	//计算原区间左端函数值 
		y2=x2*(2*x2*(x2-2)+3)-6;	//计算原区间右端函数值
		if(y==0)break;		//如果函数值为零(即找到了零点)跳出循环 
		else if(y*y1>0) x1=x;	//如果中点函数值和左端函数值同号则将中点作为新区间的左端 
		else if(y*y2>0) x2=x;	//如果中点函数值和右端函数值同号则将中点作为新区间的右端 
	}
	printf("方程在(-10,10)内的根为:%f",x);
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913626.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号