0

我正在尝试做一个非常基本的循环,它使用迭代过程创建一系列函数。多年前我使用了早期版本的Mathematica,并认为这很有效。任何帮助,将不胜感激。

这是应用于函数 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}}]
4

1 回答 1

1

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

所以非常非常清楚地向自己描述你的功能序列应该是什么。从中仔细考虑如何将其转换为 Mathematica 代码而无需无限递归。

于 2013-10-09T20:11:16.723 回答