R4 欧氏空间Schmidt正交化方法

原创 2016年06月01日 20:34:42
#include<iostream>
using namespace std;

class Euclidean{
public:
	Euclidean(double x1 = 0, double x2 = 0, double x3 = 0, double x4 = 0) :
		x1(x1), x2(x2), x3(x3), x4(x4){}
	friend Euclidean operator-(Euclidean &a1, Euclidean &a2);
	friend Euclidean operator*(double a, Euclidean &a1);
	friend ostream & operator<<(ostream &out, const Euclidean &a);
	friend double Cal(Euclidean &a1, Euclidean &a2);
	void Assignment(double a1, double a2, double a3, double a4)
	{
		this->x1 = a1;
		this->x2 = a2;
		this->x3 = a3;
		this->x4 = a4;
	}
private:
	double x1,x2,x3,x4;
};

Euclidean operator-(Euclidean &a1, Euclidean &a2)
{
	return Euclidean(a1.x1 - a2.x1, a1.x2 - a2.x2, a1.x3 - a2.x3, a1.x4 - a2.x4);
}

Euclidean operator*(double a, Euclidean &a1)
{
	return Euclidean (a*a1.x1, a*a1.x2, a*a1.x3, a*a1.x4);
}

ostream & operator<<(ostream &out, const Euclidean &a)
{
	out << "(" << a.x1 << "," << a.x2 << "," << a.x3 << "," << a.x4 << ")";
	return out;
}

double Cal(Euclidean &a1, Euclidean &a2)
{
	return ((a1.x1*a2.x1 + a1.x2*a2.x2 + a1.x3*a2.x3 + a1.x4*a2.x4) /
		(a2.x1*a2.x1 + a2.x2*a2.x2 + a2.x3*a2.x3 + a2.x4*a2.x4));
}

int main()
{
	cout << "Please enter the number of vectors(n<=4): ";
	int n;
	cin >> n;

	Euclidean*a = new Euclidean[n];
	double aa[4];

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < 4; j++)
			cin >> aa[j];
		a[i].Assignment(aa[0], aa[1], aa[2], aa[3]);
	}

	Euclidean*p = new Euclidean[n];

	for (int i = 0; i < n; i++)
	{
		p[i] = a[i];
		for (int j = 0; j < i; j++)
			p[i] = p[i]-Cal(a[i], p[j])*p[j];
	}

	for (int i = 0; i < n; i++)
		cout << p[i] << endl;

	delete[]a;
	delete[]p;

	return 0;
}

相关文章推荐

Gram-Schmidt正交化方法

  • 2011年11月30日 15:30
  • 360KB
  • 下载

正交矩阵和Gram-Schmidt正交化

在关于投影矩阵的部分,根据Strang的授课内容,我进行简单的归纳总结.知道了投影矩阵是什么,有什么用. 这篇文章仍然是关于投影矩阵的一个应用. 什么是正交矩阵和Gram-Schmidt正交化,相信学...

矩阵分析与应用(三)——基与Gram-Schmidt正交化

nn维Euclidean空间只有一个,但是nn维向量空间却有无穷多个,如x={0,0,α,β,γ}x=\{0,0,\alpha,\beta,\gamma\}和y={1,5,α,β,γ}y=\{1,5,...

线性代数导论17——正交矩阵和Gram-Schmidt正交化

本文是Gilbert Strang的线性代数导论课程笔记。课程地址:http://v.163.com/special/opencourse/daishu.html   第十七课时:正交矩阵和Gram...
  • aihali
  • aihali
  • 2015年04月16日 20:03
  • 614

正交矩阵和Gram-Schmidt正交化

今天我们学习一下正交向量(orthogonal vector)和正交矩阵(orthogonal matrix)。设有一组向量q1,q2…qn,如果任意的q都与其他的q正交,且每个q向量长度都为1,那么...

正交矩阵和Gram-Schmidt正交化

在关于投影矩阵的部分,根据Strang的授课内容,我进行简单的归纳总结.知道了投影矩阵是什么,有什么用. 这篇文章仍然是关于投影矩阵的一个应用. 什么是正交矩阵和Gram-Schmidt正交化,相...

线性代数导论17——正交矩阵和Gram-Schmidt正交化

本文是Gilbert Strang的线性代数导论课程笔记。课程地址:http://v.163.com/special/opencourse/daishu.html   第十七课时:正交矩阵和Gram...

schmidt正交化matlab程序

  • 2015年10月20日 21:54
  • 445B
  • 下载

矩阵论笔记(三)——欧氏空间与正交变换

包括两种内积空间: (1)实内积空间(欧氏空间) (2)复内积空间(酉空间)本节讲欧氏空间,包括四个部分:(1)欧氏空间 (2)正交性 (3)正交变换与正交矩阵 (4)对称变换与对称矩阵 欧...

高光谱图像中的目标探测(三) | 正交子空间投影和CEM方法(约束能量最小化)的比较研究

本文比较研究了HSI中用于检测和分类的两个经典算法:Orthogonal subspace projection (OSP) 和 Constrained energy minimization (CE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:R4 欧氏空间Schmidt正交化方法
举报原因:
原因补充:

(最多只允许输入30个字)