怎样使用数值方法求解这个函数方程
mathematica吧
全部回复
仅看楼主
level 3
bmc013 楼主
第一次发这个帖子 含有外部链接 疑似无征兆吞帖 我再发一次
我想求解这个f(f(e^x))=x^x函数方程的解,但是发现很难求得他的解析解。
我想在(0,5)这个区间上求它的近似数值解并绘图,希望x0^x0-f(f(e^x0))在(0,5)区间上的最大误差小于0.1,我该怎么做。
刚开始尝试下面的方法求解,但是失败了:
ClearAll["Global`*"]
f[x_] := a + b*x + c*x^2
g[x_] := x^x
L[a_, b_, c_] := Integrate[(g[x] - f[f[E^x]])^2, {x, -1, 1}]
StagnationPoints =
NSolve[{D[L[a, b, c], a] == 0, D[L[a, b, c], b] == 0,
D[L[a, b, c], c] == 0}, {a, b, c}, Reals]
(f[f[E^x]] // Expand) /. (StagnationPoints // Flatten)
我该怎么办才能较好的解决这个问题?
2020年02月24日 02点02分 1
level 3
bmc013 楼主
还有 在这本教材《函数方程及其解法》(斯迈尔著 冯贝叶译)的开始几页,有下面这个函数方程的图像:
2020年02月24日 02点02分 2
吧务
level 12
这种复杂的求极值就不要自己求导了,直接用NMinimize吧
error[a_?NumericQ, b_?NumericQ, c_?NumericQ] :=
With[{f = a + b
# + c #
^2 &},
NIntegrate[(f[f[Exp[x]]] - x^x)^2, {x, 0, 5}]]
sol = NMinimize[error[a, b, c], {a, b, c}]
With[{f = a + b
# + c #
^2 &},
Plot[Evaluate[{f[f[Exp[x]]], x^x} /. sol[[2]]], {x, 0, 5},
PlotLegends -> {"f[f[x]]", "\!\(\*SuperscriptBox[\(x\), \(x\)]\)"}]]
2020年02月24日 03点02分 3
非常感谢 2楼的函数方程f (x) + f (2 x) + f (3 x) = 0的图像(数值逐点有一定误差求解也行)怎么求(例如限制在-5到5这个区间)?
2020年02月24日 05点02分
@bmc013 不会,这个太专业了。建议看看教材或其他文献里有没有介绍成熟的算法,如果有的话用mma实现起来应该难度不大
2020年02月24日 07点02分
@无影东瓜 好的 非常感谢
2020年02月24日 07点02分
吧务
level 15
2020年02月29日 03点02分 4
1