c++基础数组

先声明后使用

一维数组

类型说明符  数组名【常量表达式】 a【2*3】可以

static int a[10]={0,1,2,3,4}

其余5位自动补0.

类型定义分配空间,参与那些运算

二维数组

第二维必须写后面的值

  

计算最小二乘法

标头.h
class Point {
public:
	Point(float x=0, float y=0):x(x), y(y) {};
	float getX(){ return x;}
	float getY() { return y; }
private:
	float x, y;

};
-------------------------
源文件.cpp
#include<iostream>
#include"标头.h"
#include<cmath>
using namespace std;
float lineFit( Point points[], int nPoint) {
	float avgX = 0, avgY = 0;
	float lxx = 0, lyy = 0, lxy = 0;
	for (int i = 0; i < nPoint; i++)
	{
		avgX += points[i].getX() / nPoint;
		avgY += points[i].getY() / nPoint;
	}
	for (int i = 0; i < nPoint; i++) {
		lxx += (points[i].getX() - avgX)*(points[i].getX() - avgX);
		lyy+= (points[i].getY() - avgY)*(points[i].getY() - avgY);
		lxy+= (points[i].getX() - avgX)*(points[i].getY() - avgY);
	}
	cout << "this line can be fitted by y=ax+b:" << endl;
	cout << "a=" << lxy / lxx << ":";
	cout << "b=" << avgY - lxy*avgX / lxx << ":";
	return lxy / sqrt(lxx*lyy);
}
int main() {
	Point p[10] = { Point(6,10),Point(14,20),Point(26,30),Point(75,80),Point(84,90),Point(33,40),Point(46,50),Point(54,60),Point(67,70),Point(100,100) };
	float r = lineFit(p, 10);
	cout << "line coefficient r=" << r << endl;
	return 0;
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值