0

問題の1つで区分的にプロットしようとしていますが、xとpsiの2つの変数があります。ただし、それぞれの関数は「x」の定義された範囲に対してのみ有効であり、psi範囲は同じです。私はこれらの3Dプロットを作成しようとしています-そして基本的にはPlot3D[p、{x、0,1}、{psi、0.01,1}]--->これらの範囲はプロット範囲全体とそれぞれの関数のx範囲は、Piecewise関数ですでに定義されています。

次のエラーが発生します。Plot::exclul:......は、等式または実数値関数のリストである必要があります。

誰かがこれを手伝ってくれませんか。次の手順と同じ手順を実行しようとしています。可変数のグラフ/間隔でPiecewise[]を使用するにはどうすればよいですか 。ただし、プロット部分についてどうすればよいかわかりません。

ありがとう。

以下は私のコードです:

j = 10; 
s = 0; r = 0;

K[x_, psi_] := 
  Sum[Sin[n*Pi*x]*
    Sin[n*Pi*
      psi]*(2*Exp[-(n*Pi)^2*
         Abs[s + r]] - (Exp[-(n*Pi)^2*Abs[s - r]] - 
         Exp[-(n*Pi)^2*(s + r)])/(n*Pi)^2 ), {n, 1, j}];

TL[x_, psi_] = Integrate[K[x - y, psi]*y, {y, -10, 10}];

TU[x_, psi_] = Integrate[K[x - y, psi]*(1 - y), {y, -10, 10}];

eq = {TL[x, psi], TU[x, psi]};
cond = {{0 <= x <= 0.5, 0.01 <= psi <= 1}, {0.5 < x <= 1, 
    0.01 <= psi <= 1}};
p = Piecewise[{eq, cond}];

Plot3D[p, {x, 0, 1}, {psi, 0.01, 1}]
4

1 に答える 1

1

ここに作業バージョンがあります:

time = AbsoluteTime[];
j = 10; s = 0; r = 0;
K[x_, psi_] :=
  Sum[Sin[n*Pi*x]*Sin[n*Pi*psi]*
    (2*Exp[-(n*Pi)^2*Abs[s + r]] -
      (Exp[-(n*Pi)^2*Abs[s - r]] -
         Exp[-(n*Pi)^2*(s + r)])/(n*Pi)^2), {n, 1, j}];
TL[x_, psi_] := Integrate[K[x - y, psi]*y, {y, -10, 10}];
TU[x_, psi_] := Integrate[K[x - y, psi]*(1 - y), {y, -10, 10}];
Plot3D[Piecewise[
  {{TL[x, psi], 0 <= x <= 0.5}, {TU[x, psi], 0.5 < x <= 1}}],
 {x, 0, 1}, {psi, 0.01, 1}]
ToString[Round[AbsoluteTime[] - time]] <> " seconds"

ここに画像の説明を入力

于 2012-06-26T15:17:32.527 に答える