2013-10-09 50 views
0

我想要做一个真正基本的循环,它使用迭代过程创建一系列函数。我在很多年前使用了早期版本的Mathematica,并认为这有效。任何帮助,将不胜感激。在简单循环中超过256的递归深度

下面是应用于函数g(x)= x的基本思想。我不断收到超过256的递归深度错误。它也不显示情节。

g[x_] := x; 
For[i = 1, i < 4, i++, 
f1[x_] := .25*g[2*x] + .25*2*x; 
f2[x_] := .25*g[2*x - 1] - .25*(2*x - 1) + .25; 
g[x_] := If[0 <= x <= .5, f1[x], f2[x]] 
]; 
Plot[g[x], {x, 0, 1}, PlotRange -> {{0, 1}, {0, 1}}] 

回答

1

你想绘制点x,g [x]。好的,需要弄清楚g [x]是什么。 好吧,那恰好是f1 [x]。好的,需要弄清楚f1 [x]是什么。 这被定义为g [x]。好的,需要弄清楚g [x]是什么。好吧,那恰好是f2 [x]。好吧,需要弄清楚f2 [x]是什么。 这被定义为g [x]。 这种情况一遍又一遍地发生,直到Mathematica检测失控递归停止它为止。

因此,非常非常清楚地描述你自己的功能序列应该是什么。 从那个仔细想想如何将它转换成Mathematica代码没有无限递归。

相关问题