二次插值法c语言fqdwl
二次插值法c语言fqdwl
#include'stdio.h '
#include'math.h '
#include'conio.h '
Void主() )
{
float*area(floata1,float p,float a[3];
浮动(浮动);
浮点Ar、fr;
浮动a1=10,p=0.01,e=0.000001;
浮点帕[3];
AREA(A1,p,pa );
a1=pa[0];
float a2=pa[1];
浮动a3=pa [2];
浮动f1=f (a1;
floatF2=f(A2;
浮动F3=f (a3;
德奥
{
ar=(a3*a3-a2*a2 ) F1 ) a1*a1-a3*A3 ) F2 ) a2-a1*A1 ) F3 );
ar=ar/2/((A3-A2 ) F1 ) A1-A3 ) F2 ) A2-A1 ) F3 );
fr=f(ar;
是if(ara2)
{if(FrF2 ) ) )。
{ a3=ar; f3=fr; }
elseif(fr
{ a1=a2; f1=f2;
a2=ar; f2=fr; }
else
{ a3=ar; a1=a2; A2=(A1A3 )/2;
f1=f2; f3=fr; F2=F(A2; }
}
elseif(ar
{if(FrF2 ) ) )。
{ a1=ar; f1=fr; }
elseif(fr
{ a3=a2; f3=f2;
a2=ar; f2=fr; }
else
{ a1=ar; a3=a2; A2=(A1A3 )/2;
f1=fr; f3=f2; F2=F(A2; }
}
if(Fabs(a1-a3 )=e ) break;
(while ) 1;
if(f2 )
{ ar=a2; fr=f2; }
printf((NX=%f(nf ) x* )=%f )、ar、fr );
}
浮动* area (浮动a1,浮动p,浮动a [3] ) )。
{
浮动(浮动);
浮动a2、f2、a3、f3、temp;
浮动ACC=0.00001;
浮动f1=f (a1;
浮动条=p;
while(1)。
{ a2=a1 p; F2=F(A2;
if(F2=F1 ) )。
({if(FABS(F2-F1 ) ) ) ) ) ) ) ) )。
p=p/2;
else
p=-p;
}
else break;
}
while(1)。
{ a3=a2 p; F3=F(A3;
if(F2=F3 ) break;
p=2*p;
a1=a2; f1=f2;
a2=a3; f2=f3;
}
if(a1a3 ) )。
{ temp=a1; a1=a3; a3=temp; }
a[0]=a1; a[1]=a2; a[2]=a3;
返回a;
}
是浮动(浮动)
{
floaty=pow(Fabs(x-1 )、1.5 (pow ) fabs (x-1 )、2.7 );
返回y;
}