无聊中,发一个随机分形插值的代码,需要的同志们拿去。原创

BORLANDSUN 2010-09-17 09:38:16
搞随机分形插值的同志们会用到,需要请收藏,谢谢。
说明:函数用于给一维数据插值,DataIn为待插数据,Dim为待插数据长度,H为Hurst指数,Var为插值方差,Level为插值级数(Level级插值后总的点数为(2^(Level-1))*(Dim-1)+1),DataOut为插值后的数据。

#include "math.h"
#include "Math.hpp"
bool MFIInterpolation(double* DataIn, int Dim, double H, double Var, int Level, double* DataOut)
{
if(Dim > 1)
{
// 1. 初始化数据
int Max = pow(2, Level)*(Dim-1);
int L = pow(2, Level); // 初始插值步间隔
for(int i=0; i<Dim; i++) // 埴充插值点
{
DataOut[i*L] = DataIn[i];
}

// 2. 插值
for(int p=0; p<Level; p++)
{
int count = pow(2, p)*(Dim-1); // 每行插值点数量
double Scale = pow(1-pow(2, 2*H-2), 0.5);
for(int i=0; i<=p; i++)
{
Scale *= 1/pow(2, H);
}
for(int i=0; i<count; i++)
{
double D = Scale * RandG(0, Var);
int temp1 = (i+0.5)*L;
DataOut[temp1] = (DataOut[i*L] + DataOut[(i+1)*L])/2 + D;
}
L /= 2;
}
return true;
}
else
{
return false;
}
}

使用示例:

double In[3];
In[0] = 0;
In[1] = 80;
In[2] = 150;
Level = 8;
double Out[513]; // 8级插值后总的点数为(2^(Level-1))*(3-1)+1=513
MFIInterpolation(In, 3, 0.6, 100, Level, Out);
...全文
241 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BORLANDSUN 2010-09-21
  • 打赏
  • 举报
回复
我用。bcb做数值分析怎么了?
xcluii 2010-09-21
  • 打赏
  • 举报
回复
数值分析~~~ 谁用bcb啊
lee0507 2010-09-20
  • 打赏
  • 举报
回复
这是干嘛的啊? 都不懂····呢
解释下 用途 吧 LZ
samchoy 2010-09-17
  • 打赏
  • 举报
回复
俺也来灰常热情的顶一下
paste 2010-09-17
  • 打赏
  • 举报
回复
学习,这个是高科技了,用不来的干活。
zzbinfo 2010-09-17
  • 打赏
  • 举报
回复
热情的顶贴
创新是一个国家、企业不断前进的灵魂,在今天,创新能力更是一个国家、民族解决自身生存、展问题能力大小的最客观和最重要的标志。但无数实践表明,创新从来没有一帆风顺,无论是头部企业还是创业企业,创新失败的概率都很高,技术上可能不成熟,市场部买账、性价比不匹配、目标人群错配、资源跟不上等都可能导致项目、企业的破产,75%的组织转型以失败告终,自我突破的少之又少。究其原因在于创新不仅是技术的创新,更高层面需要在体制、思想、方法上进行创新。在本课程,沉淀、提炼了讲师在多个创业企业、行业头部企业从事创业、创新工作的丰富经验,并融合贯通了行业多位创新大师、头部企业开展创新产品开的前沿思想、方法和理论,尽最可能做到深入浅出、层层分解,把深奥的理论用通俗的语言展开,让缺乏创新经验的同学也能深刻的体会到创新难点和分析、解决问题的要点。整个课程包含三个部分:1、演绎创新思维①思考本质,充分识别创新;②迭代创新,分形第二曲线;③重构假设,识别极限问题;④追问终极,突破认知边界;⑤问题拆解,培育演绎思维;⑥重构目标,突破价值网络;⑦守正出奇,走出组织心智。2、 培育创新环境①鼓励探索,培育创业创新文化;②强者思维,制定长期增长战略;③流程再造,打造创新管理体系;④锐意进取,建设创新式团队。3、 打造创新产品①创新思考,掌握五种现技能②市场洞察,梳理新机会清单③价值分析,规划高价值产品④需求拆解,打造高质量产品。4、 课程小结①    课程总结②推荐书籍。通过学习本课程,您将对产品创新思路和方法具有全面、系统的理解,当然创新是一个复杂的系统工程,在理论的基础上,还需要结合日常的工作反复实践,不断揣摩理论背后的逻辑,才能真正掌握创新方法。

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧