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

📄 7.4 求解非线性方程一个实根的连分式法pqrt.c

📁 许士良常用算法程序集C语言,包括c++一些常用算法代码
💻 C
字号:

#include "math.h"
int pqrt(x,eps,f)
double *x,eps,(*f)();
{ 
	int i,j,m,it,l;
    double a[10],y[10],z,h,x0,q;
    l=10; q=1.0e+35; x0=*x; h=0.0;
    while (l!=0)
    { 
		l=l-1; j=0; it=l;
        while (j<=7)
        { 
			if (j<=2) z=x0+0.1*j;
            else z=h;
            y[j]=(*f)(z);
            h=z;
            if (j==0) a[0]=z;
            else
            { 
				m=0; i=0;
                while ((m==0)&&(i<=j-1))
                { 
					if (fabs(h-a[i])+1.0==1.0) m=1;
                    else h=(y[j]-y[i])/(h-a[i]);
                    i=i+1;
                }
                a[j]=h;
                if (m!=0) a[j]=q;
                h=0.0;
                for (i=j-1; i>=0; i--)
                { 
					if (fabs(a[i+1]+h)+1.0==1.0) h=q;
                    else h=-y[i]/(a[i+1]+h);
                }
                h=h+a[0];
            }
            if (fabs(y[j])>=eps) j=j+1;
            else { j=10; l=0;}
        }
        x0=h;
    }
    *x=h;
    return(10-it);
}

⌨️ 快捷键说明

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