[英]How to use parallelTable to plot a function varing more than one parameter
我想 plot G [a,b,L] 固定 b 的值並運行 'a' 從 15 到 60 和 'L' 從 100 到 1000。
F[m1_, m_, L_] := ( m m1 EllipticK[-((4 m m1)/(L^2 + (m - m1)^2))])/Sqrt[L^2 + (m - m1)^2];
FA[a_, b_, L_] := NIntegrate[F[m, m1, L], {m, a, b}, {m1, a, m, b}];
FB[a_, b_] := FA[a, b, 0];
S[a_, b_, L_] := 2 (FB[a, b] - FA[a, b, L]);
G[a_, b_, L_] := 1/(\[Pi] (b ^2 - a^2) L) S[a, b, L]
我使用 Plot[%] 以常規方式執行此操作並手動為其賦值。 然后我重復相同的操作,但這次將“a”固定為 {a,15,60} 之間的任何值,並手動更改“b”的值 {b,67,90}。
我使用 Plot[%] 以常規方式執行此操作並手動為其賦值。 然后我重復相同的操作,但這次將“a”固定為 {a,15,60} 之間的任何值,並手動更改“b”的值 {b,67,90}。
Plot[{G[15, 80, L], G[20, 80, L], G[25, 80, L], G[30, 80, L],G[35, 80, L], G[40, 80, L], G[45, 80, L], G[50, 80, L],G[55, 100, L], G[60, 80, L]}, {L, 100, 1000},PlotStyle -> {{Black, Thick}, {Red, Dotted}, {Blue,Thick}, {Darker[Green], Thick, Dashing[{0.01, 0.02}]} , {Orange,Thick, Dashed} , {Magenta, Thick,Dotted}, {LightGray}, {Yellow}, {Pink}, {Purple,Dashing[{0.022, 0.02, 0.022, 0.02}]}}, AspectRatio -> 1,Frame -> True, FrameStyle -> Directive[{Black, Thickness[0.002]}]]
我見過人們使用 ParallelTable 做這件事非常有效,但我不知道如何做。 你能幫我個忙嗎?
這是一種使用ParallelTable
的方法。
styles = {{Black, Thick}, {Red, Dotted}, {Blue,
Thick}, {Darker[Green], Thick, Dashing[{0.01, 0.02}]}, {Orange,
Thick, Dashed}, {Magenta, Thick,
Dotted}, {LightGray}, {Yellow}, {Pink}, {Purple,
Dashing[{0.022, 0.02, 0.022, 0.02}]}}
plots = ParallelTable[
Plot[G[a, b, L], {L, 100, 1000},
AspectRatio -> 1,
Frame -> True,
FrameStyle -> Directive[{Black, Thickness[0.002]}],
PlotStyle -> styles[[1 + (a - 15)/5]],
PlotRange -> {{100, 1000}, {0.014, 0.20}},
PlotLabel -> "b = " <> ToString@b,
ImageSize -> 500],
{b, 67, 90, 3}, {a, 15, 60, 5}];
Show @@@ plots // Partition[#, UpTo@2] & // Grid[#, Frame -> All] &
您可能必須為每個b
值單獨調整PlotRange
以顯示完整范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.