返回列表 回复 发帖
40# xiaongxp
是的。我那个展法到是印证了你的说法:6位后就是浮点数了。
这项工作最早是xuefeiyang为解决分形放大而引进的。
为解决分形的问题,我们引进了不少方法,没想到对画板数学问题的探讨提供了不少方法,例如,目前坛中流行的动态重叠区域面积函数图象的绘制。有人认为画板分形不过是玩玩数学艺术而已,其实它还为数学的探讨提供了一种新的思路和视角。

不一样的观点

1.画板迭代深度值始终存在,一种是显示是使用深度,即深度迭代,一种是隐含的使用深度,如果在跌带时不告诉画板深度就是隐含的使用深度,这时画板就自动在后台提供以个深度进行迭代。所以画板中的两种迭代本质一样。深就是用来终结循环的。
2.跳出循环:
当一个变量参与循环后,迭代完成后要让这个变量跳出循环,只要用以个新值取代这个变量就可以。
如:创建变量t1=5,a=t1/3
t1=1--->t2=t1+1
n---深度,
迭代完后,创建一个变量u=5,这个变量是迭代后创建的,它没有参加先前的迭代,接着把a=t1/3
中的t1用u取代,这就让变量a跳出了循环。
所以取代是跳出循环的方法。注意,这里的变量t1跳出循环,是指从式子:a=t1/3中跳出循环,而这个变量a的循环依旧存在,其它有t1参加的循环保持不变。

第二个例子是分离纯小数各数位上数字的流畅图,其中(10>=n?)是用逻辑工具求的布尔值,运行结果是,但n>5时,输出的结果都是0,当n<=5时,才会正常的输出小数的各个数位:

每完成一次循环后,初值是如何被取代的?
这张图表里面每次循环中a都对应两个值,为:a-->10a,a---10a+1.在构建循环时由于点选的不同,
这就造成了一个值是离初值最近的值,每次循环完了,初值总是被离它最近的值
取代。



--------------------------------------------------
利用我上面提到的每次循环完了,初值都要被离它最近的像的值取代,然后进入下一次循环。我们就可以不做实验,直接分析出下面的迭代结构。
问题1.不做实验猜猜迭代在表格中显示的结果:
====================
m=5(迭代深度)
k=1--->k1+1=2
b=123.4223--->b-trunc(b)=0.4223
trunc(10*(b-trunc(b)))=4
=====================
完成循环后结果为。。。。。
问题2.不做实验猜猜迭代的结果是是什么?
=========================
m=5(迭代深度)
k=1--->k1+1=2
b=123.4223---> 10(b-trunc(b))=4.223
trunc((b-trunc(b)))=4
=======================
完成循环后结果为。。。。。
问题3:
n=5(深度)
k=1---->k+1=2
b=123.4223----->trunc(a)/10=12.3
10*(trunc(a)/10-trunc(trunc(a)/10))=3
迭代结果是什么?
按我讲的道理就可以分析出来。
======================
问题4:希望构建一个迭代,把数x=123.4223的各个数位上的数字分离出来,下面构建的迭代,不做实验,能否判断是否可以达成目标?

n=5(深度)
k=1---->k+1=2
b=123.4223----->trunc(a)/10=12.3
10*(trunc(a)/10-trunc(trunc(a)/10))=3
10(b-trunc(b))=4.223
10*(trunc(a)/10-trunc(trunc(a)/10))=3
如果不能达成目标,不做实验迭代在表格中显示的结果是什么?
43# myzam
      对上楼非常感兴趣,但没读懂。
      作画板分形的几位坛友曾讨论过如何从迭代中“跳出循环”的问题,都无果而终。这对于画板分形意义非常重大,如果解决了这个问题,画板复分形将前进一大步。期待未来的几何画板6有循环功能和条件转移功能,我想到那时集坛中老师们的智慧,一定能用几何画板完全数学地演绎出任何专业分形软件所能作出的复分形来。这不会成为奢望。
44# xiaongxp
我是利用逻辑判断的布尔值创建分支结构的。我跳出循环是采用取代的办法完成的。我在做既约分数就是这样利用布尔值创建的分支结构,利用迭代后在取代变量的方法跳出了循环,在跳出循环时利用布尔值的倒数构建“无穷大”去破坏掉我不需要出现的值。
我们过去也是想通过“无穷大”来跳出循环,但这并不会终止迭代,而且更占内存,同时迭代终点也不存在了,不能用于扫描图形。不知这一方法可用于何处?
46# xiaongxp


[深度迭代n=10我理解的意思是:“当n>10时,循环停此”。也就是说n<=10迭代是停不下来的。
1.我说的跳出循环的意思是:我在构建一个迭代的时候,变量t没办法要参加迭代的构建,但我的本意是
不要t参加迭代的构建。怎么办呢?我就只好先让它参加循环,因为不参加循环我的迭代构建不了。
当我把迭代构建完成之后,我再用一个新的变量(没有参加构建迭代的变量)去取代t的值,这样我就实现了把t跳出循环的目的。
这个实例我就是这么做的:- 小数展为幂级数.zip (4.26 KB) -
2.关于循环分支的构建:所谓分支我的意思是:当满足条件1时,按表达式1计算,当满足条:2时,就按表达式2算。这里的条件1,条件2是互为对立的两面。条件1可以让它对应布尔值1,条件2就对应布尔1的非。在表达式1,或表达式2中把这个布尔值加进去,这样就可以实现分支。其实,我有时是根据需要把布尔值加以运算后在添加到我要改变的表达式中区。布尔值当数一样的运算可以运算出“无穷大”,“未定义”,或其它我需要添加进入表达式的数。需然布尔值的底层就是sgn函数,但是如果直接用sgn函数去构建这要添加的值,很难理解,也不好想。如果采用布尔值,用逻辑的与,或,非,异或去理解想要构建的分支结构,在去计算要添加到表达式里面的数据就要自然且容易的多。而且工作的重点发生了质变,把过去的纯的数字运算,质变成了分析逻辑结构。观点不同了。但是会达成同样的结果。
3.利用布尔值构建的添加数不一定是无穷大,可以够见自己觉得想要添加的数,分形只会做点M集,我没发言权。
我的想法不一定对,但是我的确就是这么操作的,而且的确成功了的。等会我放两个简单的例子,我把我的想法和你交流一下。
47# myzam


应该不是巷老师所要的跳出循环,这里应该只是参加循环中的某个变量值跳出了循环,但循环还是进行了n次(迭代深度)。而那个跳出的变量只是其变量值被替换掉了,而变量名始终存在于循环中。这在做分形时是常用的一种方法。而巷老师要的是当循环到符合某个设定的条件时,而此时还没达到迭代深度值时终止迭代。不知我领会的是否正确。
47# myzam
感谢赵老师的耐心解答。正如榕老师所说,我们需要的是终止迭代。因为图形的扫描是要对扫描窗口内的每一个点进行迭代,如能中途根据判断条件真正终止迭代而跳出循环,我们就可以将迭代次数n设为极大的数,满足分形的深度变焦的需要。同时赵老师的迭代输出结果只能是文本迭代像,不能作为参数加载到3色素中。当然,从逻辑目的来讲,赵老师已达到设计目的,我是希望借用你的工作解决分形制图问题。
我的迭代观下面的文件其实是一篇文章,是我对迭代的看法,也算是我对迭代探索的一个总结吧,如有不对的地方望批评指正。

文章:我是如何看待迭代的.zip (6.21 KB)

返回列表