📄 抛物线插值法.txt
字号:
#include <math.h>
#include <iostream.h>
int p=1;
void main()
{
double c1,c2;
double a,y;
double ap=0,a1=4.0,a2=4.5,a3=5;
double y1,y2,y3;
double e=0.00001,h=-1.0;//h为任意非0值
double yp;
y1=sin(a1);
y2=sin(a2);
y3=sin(a3);
yp=sin(ap);
while(fabs((y2-yp)/y2)>=e)
{
if((ap-a2)*h>0)
{
if(y2>=yp)
{
a1=a2;
y1=y2;
a2=ap;
y2=yp;
}
else
{
a3=ap;
y3=yp;
}
}
else
{
if(y2>=yp)
{
a3=a2;
y3=y2;
a2=ap;
y2=yp;
}
else
{
a1=ap;
y1=yp;
}
}
c1=(y3-y1)/(a3-a1);
c2=((y2-y1)/(a2-a1)-c1)/(a2-a3);
ap=0.5*(a1+a3-c1/c2);
yp=sin(ap);
cout<<"循环了"<<p<<"次"<<endl;
p++;
}
if(y2<yp)
{
a=a2;
y=y2;
}
else
{
a=ap;
y=yp;
}
//y=sin(ap);
cout<<"a="<<a<<endl;
cout<<"y="<<y<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -