2012-06-26 2 views
0

Я пытаюсь построить кусочно в одной из моих проблем, и у меня есть две переменные: x и psi. Однако соответствующие функции действительны только для определенного диапазона «x», а диапазон psi - один и тот же. Я пытаюсь сделать 3D-график из них - и у меня в основном есть Plot3D [p, {x, 0,1}, {psi, 0.01,1}] ---> Эти диапазоны предназначены для всего диапазона графика и мой диапазон х для соответствующих функций уже определен в функции Кусочная.Проблемы с Mathematica Plotting с использованием Piecewise

Я получаю следующее сообщение об ошибке: say Plot :: exclul: ...... должен быть списком равенств или \ real-value функций.

Может кто-нибудь, пожалуйста, помогите мне с этим. Я пытаюсь выполнить ту же процедуру, что и: How can I use Piecewise[] with a variable number of graphs/intervals Но, я не знаю, что делать с графикой.

Спасибо.

Ниже мой код:

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}] 

ответ

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" 

enter image description here

+0

спасибо. Ты восхитителен – user1482746

Смежные вопросы