【c語言趣味程式設計100例】牛頓迭代法c
阿新 • • 發佈:2019-01-02
問題:牛頓法求最優解,本質上就是求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; }