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

📄 work.cpp

📁 提供矩阵以及向量的各种运算
💻 CPP
字号:
// work.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "fuction.cpp"

int _tmain(int argc, _TCHAR* argv[])
{
    Matrix A(7,7);
	A.init();
	Matrix B(11,21);
	Matrix APP(11,21);
	double x=0;
	double y=0;
	for(int i=0;i<11;i++)
	{
		x=0.08*i;
		for(int j=0;j<21;j++)
		{
			y=0.5+0.05*j;
			B.setMatrA(i,j,compute(A,nonlinear(x,y).getVector(1),nonlinear(x,y).getVector(0)));
			printf("f(%f,%f) = %.11e\n",x,y,B.getMatrA(i,j));
		}
	}

	vector X(11);
	vector Y(21);
	for(int i=0;i<11;i++)
		X.setVector(i,0.08*i);
	for(int j=0;j<21;j++)
		Y.setVector(j,0.5+0.05*j);
    int k=0;
	double res=0;

	do
	{
	  k++;
	  for(int i=0;i<11;i++)
	  {
		for(int j=0;j<21;j++)
		{
			APP.setMatrA(i,j,appcompute(approach(B,X,Y,k),X.getVector(i),Y.getVector(j)));
	 	}
	  }
	  res=0;
	  for(int i=0;i<11;i++)
	  {
		for(int j=0;j<21;j++)
		{
			res+=(APP.getMatrA(i,j)-B.getMatrA(i,j))*(APP.getMatrA(i,j)-B.getMatrA(i,j));
		}
	  }
	  printf("k=%d, error=%.11e\n",k,res);
	}while(res>1e-7);

	cout<<"Matrix C is:"<<endl;
	cout<<approach(B,X,Y,k)<<endl;

	Matrix RES1(8,5);
	Matrix RES2(8,5);
	for(int i=0;i<8;i++)
	{
		x=0.1*(i+1);
		for(int j=0;j<5;j++)
		{
			y=0.5+0.2*(j+1);
			RES1.setMatrA(i,j,compute(A,nonlinear(x,y).getVector(1),nonlinear(x,y).getVector(0)));

		}
	}

	for(int i=0;i<8;i++)
	{
		x=0.1*(i+1);
		for(int j=0;j<5;j++)
		{
			y=0.5+0.2*(j+1);
			RES2.setMatrA(i,j,appcompute(approach(B,X,Y,k),x,y));
			printf("(x,y)=(%f,%f): f(x,y)=%.11e\tp(x,y)=%.11e\n",x,y,RES1.getMatrA(i,j),RES2.getMatrA(i,j));

		}
	}

	int q;
	cin>>q;

	return 0;
}

⌨️ 快捷键说明

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