拉格朗日插值程序C语言,拉格朗日插值--C语言实现.doc

拉格朗日插值--C语言实现

附 页

1. 源程序

#include "stdlib.h"

#include "stdio.h"

#include "conio.h"

#include "string.h"

#include "graphics.h"

#include "math.h"

typedef struct

{

float x;

float y;

}POINT;

float Lagrange(POINT Table[],int n,float x);

void InitGraph()

{

int gdriver = DETECT,gmode;

initgraph(&gdriver,&gmode,"");

}

void line1(int x1,int y1,int x2,int y2,int color)

{

setcolor(color);

line(x1,y1,x2,y2);

}

void outtextxy1(int x,int y,char text[],int color)

{

setcolor(color);

outtextxy(x,y,text);

}

void outtextxy2(int x,int y,float RealNumber,int Length,int color)

{

char String[20];

setcolor(color);

gcvt(RealNumber,Length,String);

outtextxy(x,y,String);

}

void ShowTable(POINT Table[],int n)

{

int i;

char String_x[20],String_y[20];

line1(0,20,639,20,7);

line(30,0,30,40);

outtextxy1(10,8,"x",14);

outtextxy1(10,28,"y",14);

for(i=0;i

{

outtextxy2(36+i*80,8,Table[i].x,6,14);

outtextxy2(36+i*80,28,Table[i].y,6,14);

}

}

float GetMaximum_x(POINT Table[],int n)

{

int i;

int Max_x;

Max_x=0.0;

for(i=0;i

if(Max_x

Max_x=fabs(Table[i].x);

return(Max_x);

}

float GetMaximum_y(POINT Table[],int n)

{

int i;

int Max_y;

Max_y = 0.0;

for(i=0;i

if(Max_y

Max_y=fabs(Table[i].y);

return(Max_y);

}

void DrawCoordinate(int X1,int Y1,int X2,int Y2,float x1,float y1,float x2,float y2)

{

char String[20];

line1(X1,(Y1+Y2)/2,X2,(Y1+Y2)/2,7);

line(X2,(Y1+Y2)/2,X2-10,(Y1+Y2)/2-2);

line(X2,(Y1+Y2)/2,X2-10,(Y1+Y2)/2+2);

line((X1+X2)/2,Y1,(X1+X2)/2,Y2);

line((X1+X2)/2,Y1,(X1+X2)/2-2,Y1+10);

line((X1+X2)/2,Y1,(X1+X2)/2+2,Y1+10);

line((X1+X2)/2+(X2-X1)/4,(Y1+Y2)/2-4,(X1+X2)/2+(X2-X1)/4,(Y1+Y2)/2);

gcvt((x1+x2)/2+(x2-x1)/4,6,String);

outtextxy((X1+X2)/2+(X2-X1)/4-3,(Y1+Y2)/2+4,String);

line((X1+X2)/2-(X2-X1)/4,(Y1+Y2)/2-4,(X1+X2)/2-(X2-X1)/4,(Y1+Y2)/2);

gcvt(-((x1+x2)/2+(x2-x1)/4),6,String);

outtextxy((X1+X2)/2-(X2-X1)/4-3,(Y1+Y2)/2+4,String);

line((X1+X2)/2+4,(Y1+Y2)/2-(Y2-Y1)/4,(X1+X2)/2,(Y1+Y2)/2-(Y2-Y1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值