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

📄 ctf.cpp

📁 通过最优化算法建立雷达反射率因子和雨强的关系。
💻 CPP
字号:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
#include <string>
#include <cctype>
#include <cmath>
using namespace std;
#define SamplesNum_A 20
#define SamplesNum_b 20
#define SamplesNum_ZG 141

void main()
{
	double A[SamplesNum_A],b[SamplesNum_b];
	double z[SamplesNum_ZG],g[SamplesNum_ZG], H[SamplesNum_ZG];
	for(int i=0; i<SamplesNum_A; i++) 
		A[i]=(400-10)*double(rand())/32767+10;
	for(i=0; i<SamplesNum_A; i++) 
		cout<<"A"<<i<<" "<<A[i]<<endl;
	for(i=0; i<SamplesNum_b; i++) 
		b[i]=(4-0.5)*double(rand())/32767+0.5;
	for(i=0; i<SamplesNum_b; i++) 
		cout<<"b"<<i<<" "<<b[i]<<endl;
	
	ifstream ZG("zg.txt");//读入zg数据文件
	long int m=0,n=0;
	for (i=0;i<(SamplesNum_ZG+1)*2;i++)
	{
			ZG>>z[m++];
			ZG>>g[n++];
	}


	//test
	ofstream test("Out_zg.txt");
	for (i=0;i<SamplesNum_ZG;i++)
		test<<z[i]<<" "<<g[i]<<endl;
	
	double CTF,minCTF,min_i,min_j,min_Ai,min_bj;
	ofstream OutputOpt("out.txt");
	for(i=0; i<SamplesNum_A; i++) 
		for(int j=0; j<SamplesNum_b; j++)
		{
			CTF=0;//每组参数(A[i]<<b[j])的CTF
			for(int num=0; num<SamplesNum_ZG; num++)
				H[num]=pow((z[num]/A[i]),1/b[j]);
			for(num=0; num<SamplesNum_ZG; num++) 
				CTF=CTF+(pow((H[num]-g[num]),2)+(H[num]-g[num]));

			//求minCTF; 新计算CTF与前一次最小CTF比较
			if(i==0&&j==0)
			{//minCTF赋予初值
				minCTF=CTF;
				min_i=i;
				min_j=j;
				min_Ai=A[i];
				min_bj=b[j];
			}
			   
			if(CTF<minCTF)
			{
				minCTF=CTF;
				min_i=i;
				min_j=j;
				min_Ai=A[i];
				min_bj=b[j];
			}

			OutputOpt<<"CTF: "<<CTF<<" "<<"A"<<i<<" "<<"b"<<j<<" MINCTF: "<<minCTF<<endl;
		}

	cout<<"minCTF "<<minCTF<<" "
		<<endl
		<<"min_i "<<min_i<<" "<<"min_j "<<min_j	<<" "	
		<<"min_Ai "<<min_Ai<<" "<<"min_bj "<<min_bj<<endl;
}


⌨️ 快捷键说明

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