📄 exp.bak
字号:
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
double hmt(x,y,dy,n,t)
int n;
double t,x[],y[],dy[];
{ int i,j;
double z,p,q,s;
z=0.0;
for (i=1;i<=n;i++)
{ s=1.0;
for (j=1;j<=n;j++)
if (j!=i) s=s*(t-x[j-1])/(x[i-1]-x[j-1]);
s=s*s;
p=0.0;
for (j=1;j<=n;j++)
if (j!=i) p=p+1.0/(x[i-1]-x[j-1]);
q=y[i-1]+(t-x[i-1])*(dy[i-1]-2.0*y[i-1]*p);
z=z+q*s;
}
return(z);
}
int x_transform(double doub_x)
{
return doub_x*640-20;
}
int y_transform(double doub_y)
{
return doub_y*480-20;
}
void pot(int x,int y)
{
fillellipse(x,y,3,3);
}
void main()
{
int i;
double t,z;
static double x[10]={0.1,0.15,0.3,0.45,0.55,0.6,0.7,0.85,0.9,1.0};
static double y[10]={0.904837,0.860708,0.740818,0.637628,0.576950,
0.548812,0.496585,0.427415,0.406570,0.367879};
static double dy[10];
int t_pre=x_transform(x[0]),z_pre=y_transform(y[0]);
int gdriver=DETECT;
int gmode;
initgraph(&gdriver,&gmode,"");
for (i=0;i<=9;i++)
{
dy[i]=-y[i];
}
setcolor(WHITE);
for (t=0.1;t<=1.0;t+=0.001)
{
int int_t,int_z;
z=hmt(x,y,dy,10,t);
int_t=x_transform(t);
int_z=y_transform(z);
line(t_pre,z_pre,int_t,int_z);
t_pre=int_t;
z_pre=int_z;
}
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
for (i=0;i<=9;i++)
{
dy[i]=-y[i];
pot(x_transform(x[i]),y_transform(y[i]));
}
getch();
closegraph();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -