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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lagrange.cpp

?? 從出版社求得的經(jīng)典數(shù)值算法
?? 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é)構定義
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();

	//下面是有關畫曲線和結(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)
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
乱中年女人伦av一区二区| 日韩一区二区三区精品视频| 久久精品一区二区| 激情六月婷婷久久| 久久久久久久久99精品| 国产精品一区在线| 中文字幕国产一区| 91在线小视频| 亚洲国产综合人成综合网站| 欧美综合一区二区三区| 一区二区高清视频在线观看| 欧美午夜精品免费| 日本强好片久久久久久aaa| 欧美一级高清片| 国产在线视频一区二区三区| 久久精品夜色噜噜亚洲a∨| 成人app软件下载大全免费| 亚洲精品中文字幕乱码三区| 欧美人动与zoxxxx乱| 毛片不卡一区二区| 亚洲午夜私人影院| 欧美日韩国产一级片| 久久精品久久综合| 国产精品久久久久久久午夜片 | 日精品一区二区三区| 日韩精品中午字幕| 成人性生交大片免费| 亚洲综合在线电影| 欧美成人三级在线| proumb性欧美在线观看| 五月天激情小说综合| 精品久久久久久久久久久久久久久 | 亚洲欧洲www| 欧美日韩二区三区| 国产精品一区二区在线观看网站| 中文字幕一区二区三区不卡 | 在线不卡免费欧美| 国产精品资源在线观看| 樱桃视频在线观看一区| 精品国产乱码久久久久久久| 色综合天天狠狠| 久久精品免费看| 亚洲综合色丁香婷婷六月图片| 欧美一级免费大片| 91在线视频观看| 精品一区二区综合| 夜夜揉揉日日人人青青一国产精品| 日韩精品专区在线影院重磅| 91成人免费网站| 国产suv精品一区二区883| 性做久久久久久免费观看欧美| 国产欧美一区二区三区网站| 7777女厕盗摄久久久| 91视频在线观看免费| 极品少妇xxxx精品少妇| 亚洲小说欧美激情另类| 中文字幕一区二区三区视频| 欧美电影免费观看高清完整版在线 | 日韩欧美一二区| 一本久道久久综合中文字幕| 国产福利精品一区| 免费观看一级欧美片| 亚洲三级久久久| 国产精品素人视频| 久久免费电影网| 91精品国产黑色紧身裤美女| 在线亚洲人成电影网站色www| 成人综合婷婷国产精品久久免费| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲在线中文字幕| 亚洲免费在线视频一区 二区| 国产日韩欧美精品电影三级在线| 欧美成人精品1314www| 欧美久久一区二区| 欧美色图第一页| 在线精品视频小说1| 色综合天天综合给合国产| 国产99久久久国产精品潘金| 国产自产视频一区二区三区| 久久精品国产99国产| 日本伊人午夜精品| 日本伊人色综合网| 日本aⅴ亚洲精品中文乱码| 亚洲成人在线网站| 亚洲高清视频的网址| 亚洲国产精品久久久久秋霞影院| 亚洲一区自拍偷拍| 亚洲成人午夜电影| 亚洲成人tv网| 日韩电影在线一区二区| 日韩高清在线观看| 麻豆精品久久精品色综合| 精品一区二区三区免费| 国产精品自产自拍| 成av人片一区二区| 色播五月激情综合网| 欧美人伦禁忌dvd放荡欲情| 69久久夜色精品国产69蝌蚪网| 91精品国产综合久久国产大片| 欧美一区二区在线免费播放| 91精品国产一区二区人妖| 精品国产污网站| 国产欧美精品一区二区色综合朱莉| 欧美国产国产综合| 亚洲精品国产第一综合99久久| 亚洲综合免费观看高清在线观看 | 午夜精品久久久久久久| 男女男精品视频| 国模冰冰炮一区二区| 成人动漫在线一区| 欧美丝袜自拍制服另类| 日韩一二三四区| 中文字幕第一区二区| 一区二区三区在线不卡| 免费在线看一区| 成人av在线资源网| 在线欧美小视频| 欧美xxx久久| 亚洲欧洲日本在线| 日韩av中文字幕一区二区三区| 国产一区二区美女诱惑| 一本大道av一区二区在线播放| 91麻豆精品国产91久久久使用方法 | 亚洲精品高清在线观看| 蜜臀av亚洲一区中文字幕| 国产福利91精品一区| 精品视频色一区| 国产日韩欧美激情| 日韩精品亚洲专区| 成人97人人超碰人人99| 91精品国产91热久久久做人人| 中文一区二区完整视频在线观看| 亚洲一区二区三区中文字幕| 国内精品久久久久影院一蜜桃| 色综合天天综合网天天看片| 精品国产乱码久久久久久老虎 | 欧美系列在线观看| 久久久亚洲精品一区二区三区| 亚洲国产欧美在线| 成人免费黄色大片| 欧美一区三区四区| 亚洲一区二区三区四区中文字幕| 国产一区啦啦啦在线观看| 欧美日韩国产美| 专区另类欧美日韩| 国产成人综合视频| 日韩亚洲欧美高清| 亚洲国产精品欧美一二99| 99久久精品免费精品国产| 精品黑人一区二区三区久久| 亚洲成av人片在线观看| 91在线观看视频| 国产精品全国免费观看高清| 韩国中文字幕2020精品| 91精品国产高清一区二区三区蜜臀| 亚洲女女做受ⅹxx高潮| 成人免费高清视频在线观看| 精品第一国产综合精品aⅴ| 日韩一区精品视频| 欧美亚州韩日在线看免费版国语版| 国产精品欧美精品| 国产成人在线观看| 亚洲精品一区二区三区精华液| 日韩二区三区四区| 欧美电影影音先锋| 偷拍一区二区三区| 欧美军同video69gay| 亚洲第一搞黄网站| 欧美日韩在线播| 亚洲成人免费在线观看| 欧美性极品少妇| 午夜欧美视频在线观看 | 亚洲欧美另类小说| 91美女在线视频| 亚洲精品乱码久久久久久久久 | 一区二区激情视频| 欧美综合亚洲图片综合区| 亚洲精选一二三| 欧美色倩网站大全免费| 一区二区在线观看免费视频播放 | 91美女片黄在线观看| 亚洲欧美在线aaa| 91色.com| 亚洲黄色小说网站| 欧美亚洲国产一区二区三区va| 亚洲一区二区在线播放相泽| 欧美男人的天堂一二区| 日韩成人午夜精品| 欧美不卡一区二区三区四区| 久久99精品视频| 国产日韩欧美精品一区| 99re这里只有精品首页| 一区二区三区av电影| 欧美乱熟臀69xxxxxx| 美日韩一区二区| 国产欧美一区二区精品秋霞影院| 成人动漫在线一区| 亚洲五码中文字幕| 精品剧情在线观看| 不卡的av在线播放|