【c语言趣味编程100例】牛顿迭代法c

40 篇文章 125 订阅

问题:牛顿法求最优解,本质上就是求f(x)=0的过程,求某个点的方根,本质上是求x^n-m=0的过程,如求f(x)=x^2,当f(x)=3,求x的最优解,就是求x^2-3=0的x的解。 
牛顿迭代法求方程的根。 

#include<stdio.h>
#include<math.h>
void main(){
	float solution(float ,float ,float,float );
	float a,b,c,d,x;
	printf("请输入方程的系数");
	scanf("%f %f %f %f",&a,&b,&c,&d);
	x  = solution(a,b,c,d);
	printf("方程的根是:x=%f",x);

}
//计算值
float solution(float a,float b,float c,float d){
	
	float x0,x = 1.5,f,fd,h;
	do{
		x0=x;
		f = a*x0*x0*x0+b*x0*x0+c*x0+d;
		fd = 3*a*x0*x0+2*b*x0+c;
		h = f/fd;
		x = x0-h;


	}while(fabs(x-x0)>=1e-5);
	return x;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qxlxi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值