C++实现的归一化和反归一化处理函数
更新时间:2024-03-30 20:15:01 阅读量: 综合文库 文档下载
C++实现的归一化和反归一化处理函数
///////////////////////////////////////////////////////////////////////////////////////////////////
void __fastcall TModelManage::TranslateData(TModel* pModel,int Id,double *Value,int Flag) {
//转换函数类型 int iChgFunc;
//节点对应的最大、最小值 double dMaxValue,dMinValue;
//取节点配置信息:转换函数类型,最大值,最小值
GetNodeConfValue(pModel->ConfTable,Id,&iChgFunc,&dMaxValue,&dMinValue); if(Flag==1) //仿真时不取边界值,以避免仿真结果误差太大 {
if(*Value<=(dMinValue*1.005)) *Value=dMinValue*1.005; if(*Value>=(dMaxValue*0.995)) *Value=dMaxValue*0.995; } else {
if(*Value<=dMinValue) *Value=dMinValue; if(*Value>=dMaxValue) *Value=dMaxValue; }
//线性函数转换,转换在0-1之内 if(iChgFunc==0) {
*Value=(*Value-dMinValue)/(dMaxValue-dMinValue); }
//用atan函数转换在0-1之内 else if(iChgFunc==2) {
*Value=atan(*Value)*2/M_PI; }
//用log函数转换 else if(iChgFunc==1) {
if(*Value<=1) *Value=0; else
*Value=log10(*Value); //用log10函数转换(缩小)
if(dMaxValue>1)
*Value=*Value/log10(dMaxValue); //转换为0-1之间 }
//不用转换
else if(iChgFunc==3) {
*Value=*Value; }
*Value=((0.5-0.001)/0.5)*(*Value)+0.001; //用线性函数把数据转换为0.001-0.0.9995之间 }
/////////////////////////////////////////////////////////////////////////////////////////////////// //反数据转换,主要是针对仿真结果要反算回实际预测的值
void __fastcall TModelManage::UnTranslateData(TModel* pModel,int Id,double *Value,int Flag) {
//转换函数类型 int iChgFunc;
//节点对应的最大、最小值 double dMaxValue,dMinValue;
//取节点配置信息:转换函数类型,最大值,最小值
GetNodeConfValue(pModel->ConfTable,Id,&iChgFunc,&dMaxValue,&dMinValue);
*Value=(((*Value)-0.001)*0.5)/(0.5-0.001); //对应于---->用线性函数把数据转换为0.001-0.0.9995之间
//反线性函数转换 if(iChgFunc==0) {
*Value=(*Value)*(dMaxValue-dMinValue)+dMinValue; }
//用tan函数转换 else if(iChgFunc==2) {
*Value=tan(*Value)*M_PI/2; }
//用反log函数转换 else if(iChgFunc==1) {
*Value=pow(10,(*Value)); //用反对数方式函数转换(放大) }
else if(iChgFunc==3) {
*Value=*Value; //不用转换 } }
归一化处理其实本身比较简单理解,就是要先把数据按一定规则处理在一个区间内,比如x1到x2之间(0到1或是-1到1之间): 公式为:
归一化后数据=
x1+[(x2-x1)*(归一化前数据-数据中的最小值)/(数据中的最大值-数据中的最小值)]
盲孔优化分析序列 分析序列 盲孔深度 (mm) 盲孔直径 (mm) 盲孔处最大应力(MPa) 总体 1 3.0 2 3 4 4.1502 33.708 5 4.2678 35.621 6 7 5.3887 3.5520 4.3815 4.2861 35.903 34.334 32.0 32.743 34.154 445.33 687.44 501.90 0.195 0.198 74E+07 74E+07 550.90 0.199 23E+07 557.34 0.195 49E+07 598.01 568.67 0.197 0.198 积0.200 4E+07 (mm3) 17E+07 13E+07
function guiyihua( )
p1=[3.0 5.3887 3.5520 4.1502 4.2678 4.3815 4.2861]; p2=[32.0 32.743 34.154 33.708 35.621 35.903 34.334]; t=[445.33 687.44 501.90 550.90 557.34 598.01 568.67];
x1=0; x2=1;
maxp1=max(p1); minp1=min(p1); maxp2=max(p2); minp2=min(p2); maxt=max(t); mint=min(t); for i=1:7
newp1(i)=x1+[(x2-x1)*(p1(i)-minp1)/(maxp1-minp1)]; newp2(i)=x1+[(x2-x1)*(p2(i)-minp2)/(maxp2-minp2)];
newt(i)=x1+[(x2-x1)*(t(i)-mint)/(maxt-mint)]; end newp1 newp2 newt
运行出来的数据为: newp1 =
newp2 =
newt =
0 1.0000 0 0.1904 0 1.0000 0.2311 0.4815 0.5519 0.4376 0.2337 0.4360 0.5307 0.5783 0.9277 1.0000 0.4626 0.6306 0.5384 0.5980 0.5094
正在阅读:
C++实现的归一化和反归一化处理函数03-30
浅析市县供电企业信息通信一体化运维模式05-26
预制砼构件工厂化生产监理实施细则06-16
1.创新基金(基础性、前瞻性及软课题类)嵌入式测控终端设备信息安04-09
初三开学检测题(物理)08-10
苏州市开放型经济十二五规划04-22
1、食材果蔬、调料供货商招标文件10-27
SEB跨国并购苏泊尔案点评06-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C++
- 函数
- 实现
- 处理
- 官洲河水质监测实验报告 - 图文
- 2018苏教版三年级语文上册21 我应该感到自豪才对教案
- 储罐补焊施工方案 - 图文
- 审计常见问题定性、处理处罚依据
- 湖南师大附中2019届高三摸底考试(高二上学期期末考试)语文试卷
- 古诗韵律操古诗文字稿
- 年产5万吨硫酸法钛白粉生产工艺设计实现可行性方案
- 水质环境监测车项目可行性研究报告(发改立项备案+2013年最新案
- Geant4入门指导与安装
- 吉林省公务员考试行测提分利器:比例变化
- 地藏经(含仪轨)
- 高优门禁CU-F360使用指南(COUNS) - 图文
- 保安日常巡查记录表
- 江苏省征地补偿和被征地农民社会保障办法 省长令93号
- 说新闻资料 - 图文
- 辅导员在独立学院学风建设中工作策略
- 《凡尔赛-华盛顿体系》教案 - 图文
- 2011年汕头市第一次学业水平测试(数学理)
- 资金预算管理制度
- 用友nc购销协同—质量管理