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

📄 11.cpp

📁 拉氏算法以及最小平方
💻 CPP
字号:
// 11.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<iostream.h>
#include<math.h>
#include<stdlib.h>

//最小二乘法数据处理程序
void main ()
  {
  int n,i,flag2;
  char flag1='y';
  float ar[50],br[50],x,y,xe,ye,xye,xxe,sx,sy,sxy,sxx,a,b;
  printf ("\n*********************************************************\n");
  printf ("\n欢迎使用最小二乘法数据处理程序\n");
  printf ("\n说明:本程序运行结果保留小数点后三位\n");
  for (;flag1=='y'||flag1=='Y';)
  {
  printf ("\n请输入您要处理的数据的组数:");
  printf ("\n*****提示:本程序定义一对x,y值为一组数据:");
  scanf ("%d",&n);
  if (n>50)
  {
  printf ("\n对不起,本程序暂时无法处理50组以上的数据");
  continue;
  }
  printf ("\n请选择您的数据的处理方式:");
  printf ("\n\t1.y与x为一次线性关系");
  printf ("\n\t2.y与x的2次为线性关系\n");
  scanf("%d",&flag2);
  if (flag2>2||flag2<1) 
  {
  printf ("\n对不起,您的输入不正确\n");
  continue;
  }
  for (i=0;i<n;i++)
  {
  printf ("\n请输入第%2d个x的值\tx%2d=",i+1,i+1);
  scanf("%f",&ar[i]);
  printf("\n请输入对应的y的值:\ty%2d=",i+1);
  scanf(" %f",&br[i]);
  }
  if (flag2!=1)
  {
	 for (i=0;i<n;i++)
     br[i]=br[i]/(ar[i]*ar[i]);   
  }
     sx=sy=sxx=sxy=0;//初值
     for (i=0;i<n;i++)
	 {
	 sx=sx+ar[i];          //x和
     sy=sy+br[i];          //y和
     sxx=sxx+ar[i]*ar[i];  //x平方和
     sxy=sxy+ar[i]*br[i];  //xy和 
	 }
     xe=sx/n;              // xe为所输数值x的平均数
     ye=sy/n;              //ye为所输数值y的平均数
	 xye=sxy/n;            //xy和的平均数
     xxe=sxx/n;            //x平方和平均数
     	 
	 b=(xye-xe*ye)/(xxe-xe*xe);
	 //xye为
     a=ye-b*xe;
	 //ye为所输数值y的平均内数   xe为所输数值x的平均内数
     printf ("\n对您输入的数据的处理已经完成,结果如下:");
     printf ("\n\ta=%8.3f\n\tb=%8.3f\n",a,b);
     printf ("\nb即为拟合直线的斜率,a为截距\n");
     printf ("\n*********************************************************\n");
     printf ("\n是否继续使用本程序处理数据?(y/n)?");
     scanf (" %c",&flag1);
     if (flag1=='y'||flag1=='Y') continue;
     else if (flag1=='n'||flag1=='N') break;
     else {printf ("\n***操作非法,本程序将关闭***\n");
     exit(0);
	 }
	 printf ("\n*********************************************\n\n");
  }
     printf ("\n谢谢您的使用\n欢迎提出宝贵意见\n");
     exit (0);
} 

⌨️ 快捷键说明

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