Mathematica 迭代函数

学习Mathematica迭代函数的几个画图例子:

1.三角形沿着某一点旋转

verticse = {{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}};
tri = Line[verticse /. {a_, b__}->{a, b, a}];
Graphics[tri]

rotation[gr_] := Rotate[gr, Pi/13, {1, 1}];
Graphics[NestList[rotation, tri, 30]]

2.绘出迭代平移之后的三角形

translation[gr_] := Translate[gr, verticse];
Graphics[{RGBColor[0.32, 0.77, 1.], NestList[translation, tri, 5]}]

3.Sierpinski Triangle

SierpinskiTriangle[iter_, opts : OptionsPattern[Graphics]] :=
Module[{vertics, vecs},
vertics = N[{{0, 0}, {1, 0}, {1/2, 1}}];
vecs = 0.5 vertics;
Graphics[
{Blue, Nest[{Blue, Translate[Scale[#, 0.5, {0., 0.}], vecs]} &,
Polygon[vertics], iter]}, opts]]

SierpinskiTriangle[8, ImageSize -> 512]

参考资料:

时间: 2024-12-17 09:35:40

Mathematica 迭代函数的相关文章

混沌分形之迭代函数系统(IFS)

IFS是分形的重要分支.它是分形图像处理中最富生命力而且最具有广阔应用前景的领域之一.这一工作最早可以追溯到Hutchinson于1981年对自相似集的研究.美国科学家M.F.Barnsley于1985年发展了这一分形构型系统,并命名为迭代函数系统(Iterated Function System,IFS),后来又由Stephen Demko等人将其公式化,并引入到图像合成领域中.IFS将待生成的图像看做是由许多与整体相似的(自相似)或经过一定变换与整体相似的(自仿射)小块拼贴而成.算法: 1.

javascript学习笔记--迭代函数

概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,true表示数组中所有元素都满足条件,false表示数组中至少有一个不满足条件,代码如下: 1 var numbers = [1,2,3,4,5,4,3,2,1]; 2 numbers.every(function(item,index,array){ return item > 2; }) 3 输出:

python 内建迭代函数 iter()

内建迭代函数iter有两种使用方法,如下: 原文地址:https://www.cnblogs.com/bcyczhhb/p/11809838.html

js中数组迭代函数—(1)不生成新数组

不生成新数组的迭代器方法,它们要么对于数组中的每个元素执行某种操作, 要么返回一个值. 1.forEach(), 该方法接受一个函数作为参数, 对数组中的每个元素使用该函数 <script type="text/javascript"> function square(num) { document.write(num * num+"\t"); } function doEach(){ var nums = [1, 2, 3, 4, 5, 6, 7, 8

js中数组迭代函数—(2)会生成新数组

有两个迭代器方法可以产生新数组: map() 和 filter(). 1.map(),map() 和 forEach() 有点儿像, 对数组中的每个元素使用某个函数. 两者的区别是 map() 返回一个新的数组, 该数组的元素是对原有元素应用某个函数得到的结果. <script type="text/javascript"> function curve(grade) { return grade += 5; } function doMap() { var grades 

迭代函数:zip、enumerate,list解析

#encoding:utf-8 """ 并行迭代: zip enumerate 获取元素及下标 list解析 iter """ #zip # 两个长度相同的列表,求对应元素的和 # 原始做法: # 当两个元素长度不一致时,这个程序就会出问题,zip可以避免这个问题 def zip_test(): a,b = [1,2,3,4,5],[9,8,7,6,5] c= [] # for i in range(len(a)): # c.append(a[i

MT【59】一道迭代函数作图

[Read a good book, that is conversation with many a noble man.]---勒内·笛卡尔(1596-1650) 解答: 评:也可以把f(f(x))的表达式写出来再作图.相比之下比较花时间.

基于 Mathematica 的机器人仿真环境(机械臂篇)[转]

完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些函数,所以请使用最新版.[email protected]).  1 导入机械臂的三维模型  2 (正/逆)运动学仿真  3 碰撞检测  4 轨迹规划  5 (正/逆)动力学仿真  6 控制方法的验证  不妨先看几个例子: 逆运动学 双臂协作搬运 显示运动痕迹 (平移)零空间运动  无论你是从事机器

AngularJS 工具函数

angular.bind(self, fn, args) 作用:返回一个新的函数,绑定这个函数的this指向self 参数: self:新函数的上下文对象 fn:需要绑定的函数 args:传递给函数的参数 返回值:this指向self的新函数 var obj = { name: 'xxx', print: function (country) { console.log(this.name + ' is form ' + country); } }; var self = { name: 'yy