これで目的が達成されるかどうかを確認してください。プロットの代わりに ListPlot を使用するだけです。
f
しかし、0 から 1 までの c をプロットしているのに、x 範囲を 0 から 0.05 までに設定しているため、何をしているのかわかりません。f
を使用してプロットしてみません{c,0,0.05}
か?何かが足りないのかもしれません。
とにかく、ここに私が持っているものがあります
Manipulate[
xmax = 0.05;
y = Table[f[a, b, c], {c, 0, xmax, 0.01}];
max = Max[y];
min = Min[y];
Plot[f[a, b, c], {c, 0, 1},
PlotRange -> {{0, xmax}, {min, max}}, ImagePadding -> 30],
{a, 0, 1},
{b, 0, 1},
Initialization :>
(
f[a_, b_, c_] := a b c Exp[a b]
)
]
編集(1)
上記をより効率的にするには、プロット範囲の最大/最小を見つけるだけでなく、最初の Table コマンドを使用してデータ自体も生成することです。そして、ListPlot
の代わりに使用しPlot
ます。f
関数のサンプリングが 2 回ではなく 1 回だけ行われるように、これはより高速になるはずですか?
だからここに2番目のバージョンがあります
Manipulate[xmax = 0.05;
data = Table[{c, f[a, b, c]}, {c, 0, xmax, 0.01}];
max = Max[data[[All, 2]]];
min = Min[data[[All, 2]]];
ListPlot[
data,
PlotRange -> {Automatic, {min, max}},
Joined -> True,
ImagePadding -> 30
],
{a, 0, 1},
{b, 0, 1},
Initialization :>
(
f[a_, b_, c_] := a b c Exp[a b]
)
]