matlab ifs植物形态,matlab练习程序(IFS分形)
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分形)相关推荐
- matlab幼苗识别,基于MATLAB的植物幼苗识别
基于MATLAB的植物幼苗识别(论文11000字,外文翻译) 摘要:杂草种类繁多,严重影响了农作物的生产与产量,使用图像处理技术识别区分杂草和作物幼苗已成为一种最科学最有效的方法.通过提取植物图像的有 ...
- MATLAB之易经卜卦程序+GUI
MATLAB之易经卜卦程序+GUI 日月为易,刚柔相推. 是故易有太极,是生两仪,两仪生四象,四象生八卦,八卦定吉凶,吉凶生大业.是故法象莫大乎天地,变通莫大乎四时,悬象著明莫大乎日月. 本文 ...
- 光伏并网逆变器设计方案,附有相关的matlab电路仿真文件,以及DSP的程序代码
光伏并网逆变器设计方案,附有相关的matlab电路仿真文件,以及DSP的程序代码,方案.仿真文件.代码三者结合使用效果好,事半功倍 ID:6910671781885764
- 自学Matlab必备的60个小程序代码
自学Matlab必备的60个小程序代码 转载自:http://ishare.iask.sina.com.cn/f/9253907.html
- matlab 实现dtmf 信号检测代码,基于matlab的连续DTMF信号检测的程序实现
2009 年第 4 期福 建 电 脑基于 matlab 的连续 DTMF 信号检测的程序实现 张 昊 ( 河南师范大学 计算机与信息技术学院 通信工程专业 2006 级 河南 新乡 453007 ) ...
- matlab怎么停止运行命令,MATLAB如何使用pause函数暂停程序运行
MATLAB如何使用pause函数暂停程序运行 [语法说明] oldstate=pause(newsyaye):pause函数用于暂停程序运行,这一功能是可以被关闭的.newstate和oldstat ...
- Matlab的Notebook软件工具设置及程序运行
Matlab的Notebook软件工具设置及程序运行 博战捷 摘 要 介绍了在Matlab中如何设置Notebook软件工具,将Matlab程序嵌入中文Word.举例说明了中文Word ...
- 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】
『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...
- matlab程序 如何使用,如何使用MATLAB创建一个最简单的程序
<如何使用MATLAB创建一个最简单的程序>由会员分享,可在线阅读,更多相关<如何使用MATLAB创建一个最简单的程序(4页珍藏版)>请在人人文库网上搜索. 1.如何使用MAT ...
最新文章
- oracle数据物理结构包括,Oracle数据库的物理结构介绍
- 【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
- 中国褐煤行业发展趋势前瞻与十四五战略规划分析报告2022-2028年
- [CF850F] Rainbow Balls
- 最吓人的鬼故事排行榜前十名(转载)
- 飞书推出“线上办公室” 通过实时语音频道还原办公场景
- jenkins与SonarQube集成
- Clob 2 String
- 集合 (一) ----- 集合的基本概念与Collection集合详解
- 安卓逆向_2 --- Androidkiller,apktool、dex2jar、jd-gui、jadx反编译工具 的 安装、设置及使用教程
- 2018 美团校招笔试题 K 的倍数
- 运行提速:让电脑从拖拉机引擎变成宝马引擎必备知识
- 2022讯飞——糖尿病遗传风险检测挑战赛解决方案
- ByRef和ByVal
- 职业与生活规划是否必要?回答因人而异。但规划至少会给人带来以下好处。
- 第一类第二类斯特林数总结
- kubect安装 windows_k8s安装kubectl top命令
- java 软尾 铝_软尾入门车款:JAVA FURIA 27.5上市
- 利用ZooKeeper框架在Vmware虚拟机中搭建3台Linux分布式集群
- iOS算法--美团 旋转寿司