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

📄 main.cpp

📁 牛顿迭代法实现的源代码
💻 CPP
字号:
#include<math.h>
#include<stdio.h>
long double gznewton(long double,long double,long double,long double,long double,long double,long double,long double);
main()
{
	double x;
	long double a,b,c,d,e,f,g;
	int k;
	a=99.9644;//100;//100.334;
	b=2.0;
	c=1;
	d=100.0;
	k=6;
	e=0.517808;//0.517808;//long double (189/365);//0.832877;
	f=1;

	g=0.01;
	x=(gznewton(a,b,c,d,k,e,f,g)-1)*c*100;
	printf("SYL is %f\n",x);
}

long double gznewton(long double p0,long double c,long double f,long double m,long double n,long double t,long double y0,long double wc)
{
	int i,done=0;
	long double y,fy,fy1,newton;
	y=y0;
	do
	{
		fy=p0*pow(y,n+t)-c-m;
		fy1=p0*(n+t)*pow(y,n+t-1);
		for(i=0;i<n;i++)
		{
			fy=fy-c*pow(y,n-i);
			fy1=fy1-c*(n-i)*pow(y,n-i-1);
		}
		if (fy1!=0)
		{
			newton=y-fy/fy1;
			if (fabs(newton-y)<wc||fabs(newton-y0)>0.2)
			done=1;
			else
			y=newton;
		}
		else
			done=1;
	} while(!done);
	return(newton);
} 

⌨️ 快捷键说明

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