亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lagrange.cpp

?? 計算方法第6章講義及書后源程序
?? CPP
字號:
//////////////////////////////////////////////
//	§2  插值方法
//
//	程序2.1 — Lagrange 插值

////////////////////////////////////////////////////////////////////////
//
//本程序最后將顯示函數(shù)表和插值函數(shù)圖形曲線,是TC版本,必須用TC,BC編譯.
//如果對Visual C/C++的Windows程序有興趣,請發(fā)e-mail索取,其中包括了所有
//其中包括了所有插值和曲線擬合等功能強大的程序

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <graphics.h>
#include <math.h>

//點結(jié)構(gòu)定義
typedef struct {
	float x;
	float y;
} POINT;

//插值函數(shù)原型
float Lagrange(POINT Table[],int n,float x);

//圖形初始化
void InitGraph()
{
	int gdriver = DETECT, gmode;

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

//畫線
void line(int x1,int y1,int x2,int y2,int color)
{
	setcolor(color);
	line(x1,y1,x2,y2);
}

//字符串顯示
void outtextxy(int x,int y,char text[],int color)
{
	setcolor(color);
	outtextxy(x,y,text);
}

//實數(shù)顯示
void outtextxy(int x,int y,float RealNumber,int Length,int color)
{
	char String[20];

	setcolor(color);
	gcvt(RealNumber,Length,String);//實數(shù)轉(zhuǎn)換為字符串
	outtextxy(x,y,String);
}

//表格線顯示
void ShowTable(POINT Table[],int n)
{
	int i;
	char String_x[20],String_y[20];

	line(0,20,639,20,7);
	line(30,0,30,40);
	outtextxy(10,8,"x",14);
	outtextxy(10,28,"y",14);

	for(i=0;i<n;++i)
	{
		outtextxy(36+i*80,8,Table[i].x,6,14);
		outtextxy(36+i*80,28,Table[i].y,6,14);
	}
}

//得到函數(shù)表中x值的絕對值最大值,用來計算坐標的刻度單位
float GetMaximum_x(POINT Table[],int n)
{
	int i;
	int Max_x;

	Max_x=0.0;
	for(i=0;i<n;++i)
		if(Max_x<fabs(Table[i].x)) Max_x=fabs(Table[i].x);
	return(Max_x);
}

//得到函數(shù)表中y值的絕對值最大值,用來計算坐標的刻度單位
float GetMaximum_y(POINT Table[],int n)
{
	int i;
	int Max_y;

	Max_y=0.0;
	for(i=0;i<n;++i)
		if(Max_y<fabs(Table[i].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];

	line(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)/4);
	gcvt(-((y1+y2)/2+(y2-y1)/4),6,String);
	outtextxy((X1+X2)/2+8,(Y1+Y2)/2-(Y2-Y1)/4-2,String);

	line((X1+X2)/2+4,(Y1+Y2)/2+(Y2-Y1)/4,
		 (X1+X2)/2,(Y1+Y2)/2+(Y2-Y1)/4);
	gcvt(((y1+y2)/2+(y2-y1)/4),6,String);
	outtextxy((X1+X2)/2+8,(Y1+Y2)/2+(Y2-Y1)/4-2,String);
}

//實坐標中實數(shù)x轉(zhuǎn)換到窗口坐標的值
int xToX(int X1,int X2,float x1,float x2,float x)
{
	return((int)(X1+(X2-X1)*(x-x1)/(x2-x1)));
}

//實坐標中實數(shù)y轉(zhuǎn)換到窗口坐標的值
int yToY(int Y1,int Y2,float y1,float y2,float y)
{
	return((int)(Y1+(Y2-Y1)*(y-y1)/(y2-y1)));
}

//畫插值函數(shù)曲線
void DrawFunctionCurve(int X1,int Y1,int X2,int Y2,
					   float x1,float y1,float x2,float y2,
					   POINT Table[],int n)
{
	int i;
	float Real_x_step;

	if(X2<=X1) {printf("error screen window!");return;}

	Real_x_step=(x2-x1)/(X2-X1);
	for(i=0;i<X2-X1;++i)
		line(xToX(X1,X2,x1,x2,x1+i*Real_x_step),
			 yToY(Y1,Y2,y1,y2,Lagrange(Table,n,x1+i*Real_x_step)),
			 xToX(X1,X2,x1,x2,x1+(i+1)*Real_x_step),
			 yToY(Y1,Y2,y1,y2,Lagrange(Table,n,x1+(i+1)*Real_x_step)),
			 3);
}

//在屏幕上顯示一個看起來大一點的點
void PutBigDot(int x,int y,int color)
{
	setcolor(color);
	circle(x,y,2);
}

//畫函數(shù)表中各點到屏幕上
void DrawPointsInTable(int X1,int Y1,int X2,int Y2,
					   float x1,float y1,float x2,float y2,
					   POINT Table[],int n)
{
	int i;

	for(i=0;i<n;++i)
		PutBigDot(xToX(X1,X2,x1,x2,Table[i].x),yToY(Y1,Y2,y1,y2,Table[i].y),14);
}

//畫一點在屏幕上
void DrawPoint_xy(int X1,int Y1,int X2,int Y2,
				  float x1,float y1,float x2,float y2,
				  float x,float y)
{
	char Digits[60];
	int X,Y,tmp;

	X=xToX(X1,X2,x1,x2,x);
	Y=yToY(Y1,Y2,y1,y2,y);
	PutBigDot(X,Y,13);

	Digits[0]='(';
	gcvt(x,8,&Digits[1]);
	tmp=strlen(Digits);
	Digits[tmp]=',';
	Digits[tmp+1]=0;
	gcvt(y,8,&Digits[strlen(Digits)]);
	tmp=strlen(Digits);
	Digits[tmp]=')';
	Digits[tmp+1]=0;
	outtextxy(X+3,Y-3,Digits,13);
}

//畫插值曲線和結(jié)果點
void DrawCurve_And_ShowResult(POINT Table[],int n,float x,float y)
{
	float Max_x,Max_y;
	float x1,y1,x2,y2;
	int X1,Y1,X2,Y2;

	Table[n].x=x;
	Table[n].y=y;
	Max_x=GetMaximum_x(Table,n+1);
	Max_y=GetMaximum_y(Table,n+1);

	x1=-Max_x*2;
	y1= Max_y*2;
	x2= Max_x*2;
	y2=-Max_y*2;
	X1=10;
	Y1=60;
	X2=630;
	Y2=450;

	DrawCoordinate(X1,Y1,X2,Y2,x1,y1,x2,y2);
	DrawFunctionCurve(X1,Y1,X2,Y2,x1,y1,x2,y2,Table,n);
	DrawPointsInTable(X1,Y1,X2,Y2,x1,y1,x2,y2,Table,n);
	DrawPoint_xy(X1,Y1,X2,Y2,x1,y1,x2,y2,x,y);
}

//函數(shù)表中是不是有x值相同的點,如有相同,則有錯
int Check_x_is_same_as_former(POINT Table[],int i)
{
	int k;

	for(k=0;k<i;++k)
		if(fabs(Table[k].x-Table[i].x)<0.000001) return 1;
	return 0;
}

//輸入函數(shù)表
void InputTable(POINT Table[],int *n)
{
	int i;

	printf("\nNumber of Points n=");
	scanf("%d",n);

	for(i=0;i<*n;++i)
	{
		printf("Input %dth point(x%d,y%d): ",i,i,i);
		scanf("%f,%f",&Table[i].x,&Table[i].y);
		if(Check_x_is_same_as_former(Table,i))
		{
			printf("\nThis x is the same as the former, ReInput!\n",i);
			--i;
		}
	}
}

//插值函數(shù),這是核心函數(shù),
float Lagrange(POINT Table[],int n,float x)
{
	float Result,tmp;
	int i,j;

	Result=0.0;
	for(i=0;i<n;++i)
	{
		tmp=1.0;
		for(j=0;j<n;++j)
		{
			if(j==i)continue;
			tmp*=((x-Table[j].x)/(Table[i].x-Table[j].x));
		}
		Result+=(tmp*Table[i].y);
	}
	return(Result);
}

void main()
{
	int n;
	float x,y;
	POINT Table[1000];

	//輸入函數(shù)表
	InputTable(Table,&n);
	
	//輸入一個x點,即要進行插值計算的點
	printf("\nInput x=");
	scanf("%f",&x);

	//計算Lagrange插值
	y = Lagrange(Table,n,x);

	//結(jié)果輸出
	printf("\nL(%f)=%f",x,y);

	printf("\n\nPress any key to show Table,draw L(x) and point (x,y)\n");
	getch();

	//下面是有關(guān)畫曲線和結(jié)果的圖型化顯示
	InitGraph();

	ShowTable(Table,n);
	DrawCurve_And_ShowResult(Table,n,x,y);

	outtextxy(1,468,"Press any key to quit!");
	getch();
	closegraph();
}

//注意
//用TC,BC作圖形化程序時,要在菜單中把link庫中的圖型庫選項打上X,否則有l(wèi)ink時會報錯

/*
	運行實例:(注意:當前目錄下必須有egavga.bgi文件)

Number of Points n=3
Input 0th point(x0,y0): 100,10
Input 1th point(x1,y1): 121,11
Input 2th point(x2,y2): 144,12

Input x=115

L(115.000000)=10.722755

Press any key to show Table,draw L(x) and point (x,y)
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区公司| 成人综合婷婷国产精品久久| 欧美日韩激情在线| 亚洲一二三区不卡| 欧美日韩免费观看一区三区| 亚洲成人av一区二区| 欧美巨大另类极品videosbest| 性做久久久久久久久| 91精品在线免费观看| 久久激情五月激情| 久久久国际精品| 91美女在线视频| 亚洲主播在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 成人综合婷婷国产精品久久蜜臀 | 国产网红主播福利一区二区| 国产成人8x视频一区二区| 中文字幕不卡在线观看| 色综合视频在线观看| 亚洲一区在线看| 日韩欧美高清在线| 国产99久久久国产精品免费看| 综合久久久久综合| 欧美唯美清纯偷拍| 久久er精品视频| 成人欧美一区二区三区黑人麻豆| 欧美三区免费完整视频在线观看| 美国十次了思思久久精品导航| 久久久.com| 欧美午夜在线观看| 国产精品88av| 亚洲高清视频在线| 久久一夜天堂av一区二区三区| 成人免费观看av| 男女性色大片免费观看一区二区| 国产欧美日韩综合精品一区二区| 91福利在线免费观看| 蓝色福利精品导航| 成人欧美一区二区三区视频网页| 日韩午夜激情电影| 99re在线精品| 国产专区欧美精品| 性久久久久久久| 日韩一区中文字幕| 久久欧美一区二区| 欧美一卡在线观看| 91色婷婷久久久久合中文| 极品销魂美女一区二区三区| 亚洲资源中文字幕| 中国色在线观看另类| 欧美一级日韩一级| 欧美做爰猛烈大尺度电影无法无天| 国产一区 二区| 免费在线一区观看| 亚洲国产精品一区二区www| 国产精品色呦呦| 精品不卡在线视频| 欧美精品第一页| 欧美三级一区二区| 91首页免费视频| 成人va在线观看| 国产大陆亚洲精品国产| 男女男精品视频网| 天天射综合影视| 亚洲一区二区三区中文字幕| 国产精品国产三级国产普通话蜜臀 | 欧美在线制服丝袜| 91视频精品在这里| 不卡区在线中文字幕| 成人伦理片在线| 国产精品主播直播| 精品在线一区二区| 久久精品99国产精品日本| 日本最新不卡在线| 蜜桃久久精品一区二区| 久久99久久精品欧美| 亚洲一二三专区| 亚洲影院在线观看| 亚洲一区二区三区四区在线观看 | 亚洲123区在线观看| 亚洲超碰精品一区二区| 亚洲超碰97人人做人人爱| 亚洲国产综合色| 亚洲成人久久影院| 日日噜噜夜夜狠狠视频欧美人| 亚洲高清免费一级二级三级| 亚洲国产综合在线| 日韩一区精品字幕| 久久99精品久久久久久动态图| 久久综合综合久久综合| 精品一区二区av| 国产精品一级片在线观看| 国产成人免费在线观看| 暴力调教一区二区三区| 91久久精品网| 欧美区在线观看| 久久新电视剧免费观看| 久久久久久久久免费| 一区精品在线播放| 亚洲国产精品一区二区久久恐怖片 | 欧美日韩国产乱码电影| 欧美一级二级三级蜜桃| 26uuuu精品一区二区| 国产精品久久精品日日| 亚洲乱码日产精品bd| 婷婷综合久久一区二区三区| 男人操女人的视频在线观看欧美| 国产又粗又猛又爽又黄91精品| www.在线欧美| 欧美另类高清zo欧美| 精品国产污污免费网站入口 | 国产精品国产三级国产专播品爱网 | 亚洲一区二区三区四区的| 五月综合激情日本mⅴ| 激情综合色播激情啊| 91视频com| 欧美成人一区二区| 国产精品久久久久aaaa| 奇米888四色在线精品| 波波电影院一区二区三区| 欧美精品丝袜久久久中文字幕| 久久免费看少妇高潮| 一区二区三区成人| 国内偷窥港台综合视频在线播放| 色综合久久久久久久久| 日韩精品专区在线| 亚洲精品乱码久久久久久 | 国产欧美一区二区精品久导航 | 国产成人8x视频一区二区| 欧美精品日日鲁夜夜添| 久久久久高清精品| 亚洲成人黄色影院| 97se亚洲国产综合自在线观| 欧美电影免费观看高清完整版在线观看| 国产精品久久久久影院色老大 | 不卡的看片网站| 日韩一区二区高清| 自拍偷拍亚洲综合| 国内精品伊人久久久久av影院| 91搞黄在线观看| 国产精品视频在线看| 久久成人免费电影| 欧美另类久久久品| 亚洲激情图片qvod| 成人午夜免费视频| 久久综合丝袜日本网| 蜜臀久久99精品久久久久宅男| 欧美性淫爽ww久久久久无| 国产精品欧美经典| 国产精品夜夜嗨| 欧美一级二级三级乱码| 午夜视频一区二区| 欧美日韩一区二区三区在线| 亚洲欧美日韩国产手机在线| 国产成人在线网站| 26uuu精品一区二区在线观看| 免费一级片91| 91精品久久久久久久久99蜜臂| 一区二区三区影院| 色先锋资源久久综合| ●精品国产综合乱码久久久久| 国产一区二区按摩在线观看| 精品va天堂亚洲国产| 免费不卡在线视频| 日韩一区二区在线免费观看| 丝袜美腿亚洲一区| 欧美日韩黄色影视| 亚洲国产另类av| 欧美精品精品一区| 日产欧产美韩系列久久99| 欧美男女性生活在线直播观看| 亚洲一区电影777| 欧美日韩一级片在线观看| 亚洲chinese男男1069| 欧美精品少妇一区二区三区| 午夜精品久久久久久| 日韩三级电影网址| 激情文学综合丁香| 欧美极品少妇xxxxⅹ高跟鞋| av高清不卡在线| 一区二区三区精品在线| 欧美三级视频在线播放| 日韩在线一区二区| 欧美v日韩v国产v| 国产夫妻精品视频| 中文字幕av一区二区三区| 99久久精品99国产精品| 亚洲精品视频观看| 欧美丰满少妇xxxxx高潮对白| 久久99九九99精品| 欧美激情自拍偷拍| 色婷婷狠狠综合| 日本网站在线观看一区二区三区| 精品国产乱码久久久久久老虎| 成人免费看片app下载| 一区二区三区四区在线播放| 69堂精品视频| 国产激情精品久久久第一区二区 | 亚洲成人7777| 久久综合九色综合97婷婷|