⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minsquar.c

📁 Many C samples. It is a good sample for students to learn C language.
💻 C
字号:
/*PHUONG PHAP BINH PHUONG TOI THIEU CHO HE HAM DA THUC*/
#include <stdio.h>
#include <conio.h>


void main()
{
	int i , j , kp , n , m , p , k;
	float   sx , s1 , s , c , d ;
	char sua ;
	float  x[52] , y[52];
	float y1[51] ;
	double b[51][51] ;

	clrscr();
	printf("PHUONG PHAP BINH PHUONG TOI THIEU  \n");
	printf("TINH CAC THAM SO CUA HAM THUC NGHIEM\n");
	printf("CHO HE HAM LA CAC DA THUC\n");
	printf("SO MAU QUAN SAT n = ");
	scanf("%d",&n);
	fflush(stdin) ;
	printf("DOC CAC DIEM QUAN SAT X[i]  (i = 0,n)\n");
	for ( i = 0 ; i < n ; i++ ) scanf("%f" , &x[i]);
	printf("DOC CAC KET QUA QUAN SAT Y[i]  (i = 0,n)\n");
	for ( i = 0 ; i < n ; i++ ) scanf("%f" , &y[i]);
	printf("CAC MAU QUAN SAT \n");
	printf("X =");
	for ( i = 0 ; i < n ; i++ ) 	printf("  %f" , x[i]);
	printf("\n");
	printf("Y =");
	for ( i = 0 ; i < n ; i++ ) 	printf("  %f" , y[i]);
	printf("\n");
	printf("SO THAM SO m = ");
	scanf("%d" , &m);
	printf("XAY DUNG MA TRAN B VA VE PHAI Y1\n");
	for ( p = 0 ; p <= m ; p++ )
	{
		y1[p] = 0 ;
		for ( i = 0 ; i < n ; i++ )
		{
			sx = 1 ;
			for ( j = 0 ; j < p ; j++ ) sx *= x[i] ;
			y1[p] += y[i]*sx ;
		}
	}
	for ( p = 0 ; p <= m ; p++ )
		for ( k = p ; k <= m ; k++ )
		{
			kp = k + p ;
			b[p][k] = 0 ;
			for ( i = 1 ; i <= n ; i++ )
			{
				sx = 1 ;
				for ( j = 0 ; j < kp ; j++ ) sx *= x[i] ;
				b[p][k] += sx ;
			}
		}
	printf("PHAN TAM GIAC TREN CUA B VA VE PHAI Y1\n");
	for ( i = 0 ; i <= m ; i++ )
	{
		for ( j = 0 ; j <= m ; j++ ) 	printf("  %lf", b[i][j]);
		printf("  %lf", y1[i]);
		printf("\n");
	}
//	printf("GIAI HE DOI XUNG TIM CAC THAM SO a0,a1,...,am\n");
	for ( i = 0 ; i < m ; i++ )
	{
		c = 1.0/b[i][i] ;
		for ( k = i + 1 ; k <= m ; k++ )
		{
			d = b[i][k] ;
			for ( j = i + 1 ; j <= m ; j++ ) 	b[k][j] -=b[i][j]*c*d ;
			y1[k] -= y1[i]*c*d ;
			b[i][k] *= c ;
		}
		y1[i] *= c ;
	}
	printf("TINH CAC THAM SO a0,a1,...,am\n");
	y1[m] /= b[m][m] ;
	for ( i = m -1 ; i >= 0 ; i-- )
		for ( j = i + 1 ; j <= m ; j++ )	y1[i] -= b[i][j]*y1[j] ;
	printf("CAC THAM SO CAN TIM\n");
	for ( i = 0 ; i <= m ; i++ )	printf("a[%d] =%f\n" , i , y1[i]);
	getch();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -