/* 一维布朗运动曲线 *//* 本程序利用分形技术画一维的布朗运动曲线 */
/* 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. html如何超链接到servlet
  2. 计算机地图制图知识点,地图制图知识点整理
  3. DFT,DTFT,DFS,FFT区别
  4. 推荐:数据竞赛的利器XGBoost的常见面试题
  5. 使用nio多线程下载网络文件实例
  6. iOS10 CallKit简单开发
  7. Tyvj 1921 Freda的烦恼
  8. mysql配置-django
  9. python中df占位符_PYTHON 中的%s %占位符用法
  10. Git Tag及使用
  11. 思维的基本过程与解决问题
  12. Linux系统添加用户、管理员权限
  13. 极限与连续知识点总结_大一上学期《高等数学》知识整理-第一章 极限与连续...
  14. android背景图拉伸,解决android:background背景图片被拉伸问题
  15. 没有对公账户怎么开通认证微信公众号?
  16. Serverless 极致弹性解构在线游戏行业痛点,你有过迷茫吗
  17. 常见积分和导数的推导
  18. 购买iPhone手机时的专业术语名词解析
  19. Confluence 6 管理协同编辑 - 修改你的 Synchrony 配置
  20. [驱动] TM1729

热门文章

  1. 德鲁克对管理学的贡献
  2. iOS逆向及逆向防护相关资料
  3. android实训报告ppt模板,实训报告ppt模板
  4. Unity 自定义鼠标指针图标
  5. 公众号----微信公众号后台设置
  6. MongoDb学习(五)--Gridfs--上传下载
  7. android app 嵌入广告,流氓来了!如何拯救手机中嵌入广告的应用
  8. Comsol 2020全套教学视频 教程入门讲解新手的福音
  9. APM Agent 之 动态注入 agent
  10. java数据库加密(druid)