Wolfram mathematica 如何在do循环中绘制多个函数
使用Do循环在单独的图形上绘制多个函数时遇到问题。我已经知道了如何只为一个fit函数执行它,但是现在我必须为另外9个fit函数执行它Wolfram mathematica 如何在do循环中绘制多个函数,wolfram-mathematica,Wolfram Mathematica,使用Do循环在单独的图形上绘制多个函数时遇到问题。我已经知道了如何只为一个fit函数执行它,但是现在我必须为另外9个fit函数执行它 m = 10; t0IGList = {0.01, 0.01, 0.012, 0.015, 0.018, 0.022, 0.028, 0.035, 0.042, 0.05}; SubDataFit = NonlinearModelFit[SubDataList[[1]], A/(1 + (2 (t - t0)/\[Sigma])^2) + B0, {{A
m = 10;
t0IGList = {0.01, 0.01, 0.012, 0.015, 0.018, 0.022, 0.028, 0.035,
0.042, 0.05};
SubDataFit =
NonlinearModelFit[SubDataList[[1]],
A/(1 + (2 (t - t0)/\[Sigma])^2) +
B0, {{A, 0.7}, {t0, t0IGList[[1]]}, {\[Sigma], 0.006}, {B0, 7.0}},
t];
SubFitPlot =
Plot[SubDataFit[t], {t, 0, 0.07}, ImageSize -> 500,
FrameLabel -> {"Time (s)", "Voltage (V)"}, PlotStyle -> Red,
PlotRange -> {7, 7.8}];
Do[{
SubDataFit[[i]] =
NonlinearModelFit[SubDataList[[i]],
A/(1 + (2 (t - t0)/\[Sigma])^2) +
B0, {{A, 0.7}, {t0, t0IGList[[i]]}, {\[Sigma], 0.006}, {B0,
7.0}}, t];
SubFitPlot =
Plot[SubDataFit[t], {t, 0, 0.07}, ImageSize -> 500,
FrameLabel -> {"Time (s)", "Voltage (V)"}, PlotStyle -> Red];
Print["B = ", i, "Volts"];
Print[SubDataPlot];}, {i, 1, m}];
你说你想在单独的图形上绘制多个函数,这似乎意味着你想要10个单独的图形。如果是这样的话。如果是这样,您可以将所需的两部分分离出来:在循环中生成拟合并将其收集到列表中,然后绘制拟合函数。您可以使绘图功能尽可能复杂。简单的例子:
flst = {x, x^2, x^3, Log[x]}
Plot[#, {x, 0.01, 2}] & /@ flst
一旦你有了这个绘图列表,你可以用它们做任何你想做的事情,例如,制作一个图形网格,或者导出它们,等等。尝试使用模块。创建一个函数
plot[i_]:=Module[{local variables for module},
Any actions you want: fits, calculations etc. Separate them with ";";
Plot[i-th function]].
然后,您可以使用此函数和不同的i-from-you范围来创建所需的绘图