/* 一维布朗运动曲线 *//* 本程序利用分形技术画一维的布朗运动曲线 */
/* BC 3.1编译                               */
/* 其中函数initgraph的第三个参数可能需要修改  */
#include "graphics.h"
#include "math.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#include "stdio.h"
#define  MAX_SIZE 1000
#define MAX_LEVEL 9 /* 递归深度*/
double Delta[MAX_LEVEL];
double Array[MAX_SIZE];
double H;
double Sigma=150.0;
double Gauss(void);
void CreateFractalImage(int y1,int y2);
void MiddlePoint(int p1,int p2,int CurrentLevel);
void DrawFractalImage(void);
/*=============================================================*/
main()
{ int GraphDriver=DETECT;
int GraphMode;
int k,mod;
double TempX,TempY,StartX,StartY;
initgraph(&GraphDriver,&GraphMode,"c:\\tc");
/*===============================================================*/
/*Draw fMB curve 递归画一条分形布朗运动曲线*/
/*==============================================================*/
randomize();
setcolor(GREEN);
H=0.3;
settextstyle(TRIPLEX_FONT,HORIZ_DIR,0);
setusercharsize(2,1,1,1);
outtextxy(450,400,"Wait...");
CreateFractalImage(150,150);
DrawFractalImage();
H=0.7;
CreateFractalImage(400,400);
DrawFractalImage();
getch();
closegraph();
return 0;
}
/*===============================================================*/
void CreateFractalImage(int y1,int y2)
{ int N,i;
N=(int)pow(2.0,(double)MAX_LEVEL);
for(i=0;i<MAX_LEVEL;i++)
Delta[i]=Sigma*pow(0.5,i*H)*sqrt(1.0-pow(2.0,2*H-2));
Array[0]=y1;
Array[N]=y2;
MiddlePoint(0,N,0);
}
/*===============================================================*/
/*Recursive procedure 二分法递归*/
/*===============================================================*/
void MiddlePoint(int p1,int p2,int CurrentLevel)
{ int middle;
middle=(p1+p2)/2;
if(CurrentLevel>MAX_LEVEL) return;
if((middle!=p1) && (middle!=p2))
{ Array[middle]=(Array[p1]+Array[p2])/2.0+Delta[CurrentLevel]*Gauss();
MiddlePoint(p1,middle,CurrentLevel+1);
MiddlePoint(middle,p2,CurrentLevel+1);
}
}
/*===============================================================*/
void DrawFractalImage(void)
{ int i,x,step,number;
number=(int) pow(2.0,(double)MAX_LEVEL);
step=getmaxx()/number*3/2;
moveto(0,(int)Array[0]);
for(i=1,x=step;i<number;x+=step,i++) lineto(x,(int)Array[i]);
}
/*==============================================================*/
double Gauss()
{ double g=0.0;
int RANGE=12000;
int COUNT=50;
int m;
for(m=1;m<=COUNT;m++) g+=(double)random(RANGE);
g=g/COUNT/(RANGE-1);
if(random(RANGE)%2) g=-g;
return g;
} 

144.绘制布朗运动曲线相关推荐

  1. Python+matplotlib绘制函数曲线查找函数极值

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...

  2. R语言构建logistic回归模型并评估模型:模型预测结果抽样、可视化模型分类预测的概率分布情况、使用WVPlots包绘制ROC曲线并计算AUC值

    R语言构建logistic回归模型并评估模型:模型预测结果抽样.可视化模型分类预测的概率分布情况.使用WVPlots包绘制ROC曲线并计算AUC值 目录

  3. R语言使用pROC包绘制ROC曲线、获取最优阈值(threshold)及最优阈值对应的置信区间

    R语言使用pROC包绘制ROC曲线并获取最佳阈值(threshold)及最佳阈值对应的置信区间 #ROC曲线 ROC(receiver operating characteristic curve)接 ...

  4. R语言使用pROC包绘制ROC曲线并使用smooth函数绘制平滑的ROC曲线(方法包括:binormal、density、fitdistr、logcondens、logcondens.smooth)

    R语言使用pROC包绘制ROC曲线并使用smooth函数绘制平滑的ROC曲线(方法包括:binormal.density.fitdistr.logcondens.logcondens.smooth) ...

  5. R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来

    R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值.plot.roc函数绘制ROC曲线.添加置信区间.为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来 目录

  6. R使用pROC和ggplot2包绘制ROC曲线

    R使用ggplot2包绘制ROC曲线 目录 R使用ggplot2包绘制ROC曲线 logistic回归模型构建 使用pROC包

  7. 使用R构建Xgboost模型并绘制ROC曲线

    使用R构建Xgboost模型并绘制ROC曲线 xgboost算法论文全称为<XGBoost: A Scalable Tree Boosting System>,由陈天奇于2016年发表的, ...

  8. 验证曲线( validation curve)是什么?如何绘制验证曲线( validation curve)?验证曲线( validation curve)详解及实践

    验证曲线( validation curve)是什么?如何绘制验证曲线( validation curve)?验证曲线( validation curve)详解及实践 验证曲线( validation ...

  9. 通过交叉验证(Cross Validation)KFold绘制ROC曲线并选出最优模型进行模型评估、测试、包含分类指标、校准曲线、混淆矩阵等

    通过交叉验证(Cross Validation,CV)KFold绘制ROC曲线并选出最优模型进行模型评估.测试.包含分类指标.校准曲线.混淆矩阵等 Cross Validation cross val ...

  10. 校准曲线(calibration curve)是什么?如何绘制校准曲线(calibration curve)?如何通过过校准曲线进行分析?什么是高估?什么是低估?

    校准曲线(calibration curve)是什么? 如何绘制校准曲线(calibration curve)? 如何通过过校准曲线进行分析? 什么是高估? 什么是低估? 注意:横纵坐标的差异,但是本 ...

最新文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版
  2. BCH两周年独立日已至,世界各地爱好者纷纷举办Meetup庆祝
  3. [剑指offer] 替换空格
  4. fopen时w与wb的区别
  5. AES-256 加密 PHP实现
  6. 手把手教你|拦截系统调用
  7. i7 5500u linux,i7 5500u相当于什么cpu
  8. GitHub+jsDelivr+PicGo+Visual Studio Code 打造稳定、快速、高效、免费图床
  9. 用户画像之门店用户类型的体系
  10. [转载] Python一行代码实现1到100之和
  11. LeetCode--191--位1的个数
  12. 010 Editor for Mac(十六进制编辑器)v12.0
  13. Intel Optane 内存个人安装与使用步骤 Dell 灵越
  14. 人类迁徙计划 (feat.译者补完篇)
  15. c语言瑞年条件,C语言如何判断是闰年,闰年判断条件
  16. 百度快照劫持的表现及解决方法
  17. deflate 压缩 java_Java和PHP配合:deflate(压缩)和inflate(解压)
  18. Codeforces Round #727 (Div. 2)2021.6.20
  19. adb和frida的一点简单使用记录
  20. 浅谈网络营销推广策略-方式方法利用

热门文章

  1. 马尔可夫链 以及 隐马尔可夫模型(HMM)
  2. 一种简单的DWG在线浏览方法
  3. 【mcuclub】舵机-SG90
  4. Python入门教程之安装MyEclipse插件和安装Python环境
  5. 使用网络数据采集的好处
  6. 模型相关:3DMax导出FBX模型导入Unity后旋转中心不在模型中心的相关问题
  7. 证件照更换背景 裁剪尺寸 智能图片放大 照片 证件照大师
  8. 【剑桥摄影协会】伽马校正(Gamma)
  9. HTML5如何把圆分成六等分,CSS八等分圆的实现示例_CSS教程_CSS
  10. USB C口5V输入,四节串联锂电池充电管理芯片,IC电路板PW4405芯片-22号电路板