IFS为迭代函数系统,是一种构造分形的方法。

方法的核心是以概率p的方式对初始点进行仿射平移变换。

变换公式为:

x(k+1)=a*x(k) + b*y(k) + e

y(k+1)=c*x(k) + d*y(k) + f

关键是确定IFS码表,只要码表确定了,后面的编程套路基本一样。

下面列两个常见的码表及分形效果。

Sierpinski垫IFS码表:

w

a

b

c

d

e

f

p

1

0.5

0

0

0.5

0

0

0.333

2

0.5

0

0

0.5

0.25

0.433

0.333

3

0.5

0

0

0.5

0.5

0

0.333

matlab代码如下:

clear all;

close all;

clc;

n=500000;

x=zeros(n,1);

y=zeros(n,1);

for k=2:n

p=rand(1);

if p < 0.33

x(k)=0.5*x(k-1)+0*y(k-1);

y(k)=0*x(k-1)+0.5*y(k-1);

elseif p< 0.66

x(k)=0.5*x(k-1)+0*y(k-1)+0.25;

y(k)=0*x(k-1)+0.5*y(k-1)+0.433;

else

x(k)=0.5*x(k-1)+0*y(k-1)+0.5;

y(k)=0*x(k-1)+0.5*y(k-1);

end

end

plot(x,y,'.')

效果:

Barnsley羊齿叶IFS码表:

w

a

b

c

d

e

f

p

1

0

0

0

0.16

0

0

0.01

2

0.85

0.04

-0.04

0.85

0

1.6

0.85

3

0.2

-0.26

0.23

0.22

0

1.6

0.07

4

-0.15

0.28

0.26

0.24

0

0.44

0.07

matlab代码如下:

clear all;

close all;

clc;

n=100000;

x=zeros(n,1);

y=zeros(n,1);

for k=2:n

p=rand(1);

if p < 0.01

y(k)=0.16*y(k-1);

elseif p < 0.86

x(k)=0.85*x(k-1)+0.04*y(k-1);

y(k)=-0.04*x(k-1)+0.85*y(k-1)+1.6;

elseif p < 0.93

x(k)=0.2*x(k-1)-0.26*y(k-1);

y(k)=0.23*x(k-1)+0.22*y(k-1)+1.6;

else

x(k)=-0.15*x(k-1)+0.28*y(k-1);

y(k)=0.26*x(k-1)+0.24*y(k-1)+0.44;

end

end

plot(x,y,'.');

效果:

如何构造IFS码表是一个难点,有码表后生成分形其实是比较简单的。

标签:1.6,IFS,码表,0.5,0.04,分形,matlab,0.85

来源: https://www.cnblogs.com/tiandsp/p/13172236.html

matlab ifs植物形态,matlab练习程序(IFS分形)相关推荐

  1. matlab幼苗识别,基于MATLAB的植物幼苗识别

    基于MATLAB的植物幼苗识别(论文11000字,外文翻译) 摘要:杂草种类繁多,严重影响了农作物的生产与产量,使用图像处理技术识别区分杂草和作物幼苗已成为一种最科学最有效的方法.通过提取植物图像的有 ...

  2. MATLAB之易经卜卦程序+GUI

    MATLAB之易经卜卦程序+GUI   日月为易,刚柔相推. 是故易有太极,是生两仪,两仪生四象,四象生八卦,八卦定吉凶,吉凶生大业.是故法象莫大乎天地,变通莫大乎四时,悬象著明莫大乎日月.   本文 ...

  3. 光伏并网逆变器设计方案,附有相关的matlab电路仿真文件,以及DSP的程序代码

    光伏并网逆变器设计方案,附有相关的matlab电路仿真文件,以及DSP的程序代码,方案.仿真文件.代码三者结合使用效果好,事半功倍 ID:6910671781885764

  4. 自学Matlab必备的60个小程序代码

    自学Matlab必备的60个小程序代码 转载自:http://ishare.iask.sina.com.cn/f/9253907.html

  5. matlab 实现dtmf 信号检测代码,基于matlab的连续DTMF信号检测的程序实现

    2009 年第 4 期福 建 电 脑基于 matlab 的连续 DTMF 信号检测的程序实现 张 昊 ( 河南师范大学 计算机与信息技术学院 通信工程专业 2006 级 河南 新乡 453007 ) ...

  6. matlab怎么停止运行命令,MATLAB如何使用pause函数暂停程序运行

    MATLAB如何使用pause函数暂停程序运行 [语法说明] oldstate=pause(newsyaye):pause函数用于暂停程序运行,这一功能是可以被关闭的.newstate和oldstat ...

  7. Matlab的Notebook软件工具设置及程序运行

    Matlab的Notebook软件工具设置及程序运行   博战捷     摘  要  介绍了在Matlab中如何设置Notebook软件工具,将Matlab程序嵌入中文Word.举例说明了中文Word ...

  8. 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】

    『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...

  9. matlab程序 如何使用,如何使用MATLAB创建一个最简单的程序

    <如何使用MATLAB创建一个最简单的程序>由会员分享,可在线阅读,更多相关<如何使用MATLAB创建一个最简单的程序(4页珍藏版)>请在人人文库网上搜索. 1.如何使用MAT ...

最新文章

  1. oracle数据物理结构包括,Oracle数据库的物理结构介绍
  2. 【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
  3. 中国褐煤行业发展趋势前瞻与十四五战略规划分析报告2022-2028年
  4. [CF850F] Rainbow Balls
  5. 最吓人的鬼故事排行榜前十名(转载)
  6. 飞书推出“线上办公室” 通过实时语音频道还原办公场景
  7. jenkins与SonarQube集成
  8. Clob 2 String
  9. 集合 (一) ----- 集合的基本概念与Collection集合详解
  10. 安卓逆向_2 --- Androidkiller,apktool、dex2jar、jd-gui、jadx反编译工具 的 安装、设置及使用教程
  11. 2018 美团校招笔试题 K 的倍数
  12. 运行提速:让电脑从拖拉机引擎变成宝马引擎必备知识
  13. 2022讯飞——糖尿病遗传风险检测挑战赛解决方案
  14. ByRef和ByVal
  15. 职业与生活规划是否必要?回答因人而异。但规划至少会给人带来以下好处。
  16. 第一类第二类斯特林数总结
  17. kubect安装 windows_k8s安装kubectl top命令
  18. java 软尾 铝_软尾入门车款:JAVA FURIA 27.5上市
  19. 利用ZooKeeper框架在Vmware虚拟机中搭建3台Linux分布式集群
  20. iOS算法--美团 旋转寿司

热门文章

  1. 面试指南(三):想跳槽,这些问题你会了吗?
  2. 苹果一体机安装windows7教程
  3. html 利用 frameset 进行简单的框架布局
  4. 2023新款家用洗地机哪个牌子好?清洁效果好的智能洗地机推荐
  5. 家用洗地机哪个牌子质量最好?高性价比家用洗地机推荐
  6. 2017年的端午节祝福语
  7. 895计算机专业基础,北京工业大学2020年考研895计算机学科专业基础考试大纲
  8. 程序员有前途吗?出路在哪里?
  9. jenkins+maven+docker java项目编译、打包、构建镜像、上传私有仓库、web容器部署
  10. 洛谷_2762 太空飞行计划问题