2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение05.01.2014, 20:44 


14/10/12
210
я имел в виду, что стрелка после оператор MaxRecursion не вставляется:
Код:
ListLogPlotPlot[Transpose[{t, p}], MaxRecursion]

А спойлер как вставить в сообщение? Кнопка s просто зачеркивает текст

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение05.01.2014, 21:01 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
salang в сообщении #809896 писал(а):
стрелка после оператор MaxRecursion не вставляется
Куда она не вставляется? Вы что, не можете набрать ->? Другое дело, что
а) такой функции как ListLogPlotPlot вообще не существует (Mathematica должна подсказать вам это, выделив имя функции синим, а не чёрным, как встроенные функции), а есть ListLogPlot;
б) и даже ListLogPlot не имеет опции MaxRecursion, поэтому она выделяется красным цветом (вы об этом, наверное, хотели сказать?). Она — для функций типа Plot.
Короче, разберитесь сначала, пожалуйста, с различиями между непрерывными и дискретными графиками, а то вы просто не понимаете, чего хотите и тыкаете наугад. Оттого и вопросы у вас один глупее другого получаются. (Не обижайтесь только.)
salang в сообщении #809896 писал(а):
Кнопка s просто зачеркивает текст
Она для того и нужна. Спойлеры обрамляются тегом [off].

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 08:33 


14/10/12
210
График, конечно, лучше непрерывный, но если на моей машине это будет полдня, тогда пусть будет дискретный. Я совершенно не обижаюсь, мне просто очень нужно расчет осуществить, а не получается :P. Следующая итерация тоже не очень.

(Оффтоп)

Код:
c = 3*10^8;
H = 7.2*10^5;
\[Tau] = 47*10^-6;
Fd = 7200;
Tp = 50*10^-6;
f = 3.5*10^8;
v = 7500;
Q = 18000;
L = 100;
s2 = 0.003;
s1 = 2;
\[CapitalTheta]0 = 0.018;
m = 256;
\[Lambda] = 0.022;
n = 3;
lm = 25;
d = 1.2;
\[Lambda] = 0.022;
n = 3;
t = List[ -10^-8, -10^-9, 0, 10^-11, 10^-10, 10^-9, 10^-8, 20*10^-7];

In[1]:= pp[tt_] = Sum[
  NIntegrate [
   Exp[(\[Pi]*Fd^2*Tp^2*(m - Abs[k])^2 *x^2)/H^2 - (
     n^2*\[Pi]^2*d^2*y^2 )/(\[CapitalTheta]0^2*\[Lambda]^2 *H^2*141^2) - (
     100*lm^2*x^2*s1^2)/(H^2*L^2*\[Pi]^2*s2^2) - (100*lm^2*y^2*s1^2)/(
     H^2*L^2*\[Pi]^2*s2^2) - (5.55*(y^2 + x^2))/(
     H^2*\[CapitalTheta]0^2) - \[Pi] * (f^2 *(t - k*Tp - x^2/(c*H) - y^2/(
           c*H))^2 +
        2*Q*(v*k*Tp)/(H*d) + \[Tau]^2*((v*k*Tp)/(H*d))^2 )], {x, -Infinity,
    Infinity}, {y, -Infinity, Infinity}, MaxRecursion -> 40,
   AccuracyGoal -> 60, Method -> "AdaptiveMonteCarlo"], {k, -255, 255}]


During evaluation of In[1]:= NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))+(Fd^2 (<<1>>)^2 \[Pi] Tp^2 x^2)/H^2-<<1>>-<<1>>-(d^2 <<1>> <<1>> y^2)/(19881 <<2>> \[Lambda]^2)-\[Pi] (-((510 Q Tp v)/(d H))+f^2 (t+Times[<<2>>]+Times[<<4>>]+Times[<<4>>])^2+(65025 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

During evaluation of In[1]:= NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))+(Fd^2 (<<1>>)^2 \[Pi] Tp^2 x^2)/H^2-<<1>>-<<1>>-(d^2 <<1>> <<1>> y^2)/(19881 <<2>> \[Lambda]^2)-\[Pi] (-((508 Q Tp v)/(d H))+f^2 (t+Times[<<2>>]+Times[<<4>>]+Times[<<4>>])^2+(64516 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

During evaluation of In[1]:= NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))+(Fd^2 (<<1>>)^2 \[Pi] Tp^2 x^2)/H^2-<<1>>-<<1>>-(d^2 <<1>> <<1>> y^2)/(19881 <<2>> \[Lambda]^2)-\[Pi] (-((506 Q Tp v)/(d H))+f^2 (t+Times[<<2>>]+Times[<<4>>]+Times[<<4>>])^2+(64009 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

During evaluation of In[1]:= General::stop: Further output of NIntegrate::inumr will be suppressed during this calculation. >>

Out[1]= 511 NIntegrate[
  Exp[(\[Pi] Fd^2 Tp^2 (m - Abs[k])^2 x^2)/H^2 - (
    n^2 \[Pi]^2 d^2 y^2)/(\[CapitalTheta]0^2 \[Lambda]^2 H^2 141^2) - (
    100 lm^2 x^2 s1^2)/(H^2 L^2 \[Pi]^2 s2^2) - (100 lm^2 y^2 s1^2)/(
    H^2 L^2 \[Pi]^2 s2^2) - (5.55 (y^2 + x^2))/(
    H^2 \[CapitalTheta]0^2) - \[Pi] (f^2 (t - k Tp - x^2/(c H) - y^2/(
          c H))^2 + (2 Q (v k Tp))/(
       H d) + \[Tau]^2 ((v k Tp)/(
         H d))^2)], {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}, MaxRecursion -> 40, AccuracyGoal -> 60,
  Method -> "AdaptiveMonteCarlo"]

ListLogPlot[pp[t], {t, -10^(-8), 200*10^(-8)}]

ListLogPlot::nonopt: Options expected (instead of {t,-(1/100000000),1/500000}) beyond position 1 in ListLogPlot[pp[t],{t,-(1/100000000),1/500000}]. An option must be a rule or a list of rules. >>

ListLogPlot[pp[t], {t, -(1/100000000), 1/500000}]

ListLogPlot[Transpose[{t, p}], MaxRecursion]

Transpose::nmtx: The first two levels of the one-dimensional list {t,p} cannot be transposed. >>

ListLogPlot::nonopt: Options expected (instead of MaxRecursion) beyond position 1 in ListLogPlot[Transpose[{t,p}],MaxRecursion]. An option must be a rule or a list of rules. >>

ListLogPlot[Transpose[{t, p}], MaxRecursion]

p[tt_] = Sum[
  NIntegrate[
   Exp[x^2*(\[Pi]*Fd^2*\[Tau]^2*(m - Abs[k])^2)/
       H^2 - (0.00005*n^2*\[Pi]^2*d^2*y^2)/(\[CapitalTheta]0^2*\[Lambda]^2*
        H^2) - (100*lm^2*x^2*s1^2)/(H^2*L^2*\[Pi]^2*s2^2) - (100*lm^2*y^2*
        s1^2)/(H^2*L^2*\[Pi]^2*
        s2^2) - (5.55*(y^2 +
          x^2))/(H^2*\[CapitalTheta]0^2) - \[Pi]*(f^2*(t - k*Tp - x^2/(c*H) -
            y^2/(c*H))^2 +
        2*Q*(v*k*Tp)/(H*d) + \[Tau]^2*((v*k*Tp)/(H*d))^2)], {x, -Infinity,
    Infinity}, {y, -Infinity, Infinity}, MaxRecursion -> 40,
   AccuracyGoal -> 60, Method -> "AdaptiveMonteCarlo"], {k, -255, 255}]

NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-<<1>>/<<1>>-<<1>>/<<1>>+(Fd^2 <<3>> <<1>>)/H^2-\[Pi] (-((510 Q Tp v)/(d H))+f^2 (t+Times[<<2>>]+Times[<<4>>]+Times[<<4>>])^2+(65025 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-<<1>>/<<1>>-<<1>>/<<1>>+(Fd^2 <<3>> <<1>>)/H^2-\[Pi] (-((508 Q Tp v)/(d H))+f^2 (t+Times[<<2>>]+Times[<<4>>]+Times[<<4>>])^2+(64516 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-<<1>>/<<1>>-<<1>>/<<1>>+(Fd^2 <<3>> <<1>>)/H^2-\[Pi] (-((506 Q Tp v)/(d H))+f^2 (t+Times[<<2>>]+Times[<<4>>]+Times[<<4>>])^2+(64009 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

General::stop: Further output of NIntegrate::inumr will be suppressed during this calculation. >>

511 NIntegrate[
  Exp[(x^2 (\[Pi] Fd^2 \[Tau]^2 (m - Abs[k])^2))/H^2 - (
    0.00005 n^2 \[Pi]^2 d^2 y^2)/(\[CapitalTheta]0^2 \[Lambda]^2 H^2) - (
    100 lm^2 x^2 s1^2)/(H^2 L^2 \[Pi]^2 s2^2) - (100 lm^2 y^2 s1^2)/(
    H^2 L^2 \[Pi]^2 s2^2) - (5.55 (y^2 + x^2))/(
    H^2 \[CapitalTheta]0^2) - \[Pi] (f^2 (t - k Tp - x^2/(c H) - y^2/(
          c H))^2 + (2 Q (v k Tp))/(
       H d) + \[Tau]^2 ((v k Tp)/(
         H d))^2)], {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}, MaxRecursion -> 40, AccuracyGoal -> 60,
  Method -> "AdaptiveMonteCarlo"]

ListLinePlot[%, AxesLabel -> {"t", "P(t)"}, PlotStyle -> PointSize[0.01]]

NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-(5.55 (<<1>>))/(H^2 \[CapitalTheta]0^2)-<<1>>/<<1>>-\[Pi] ((2 k Q Tp v)/(d H)+f^2 (t+<<3>>)^2+(k^2 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))+(Fd^2 \[Pi] x^2 \[Tau]^2 (m-Abs[k])^2)/H^2) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-(5.55 (<<1>>))/(H^2 \[CapitalTheta]0^2)-<<1>>/<<1>>-\[Pi] ((2 k Q Tp v)/(d H)+f^2 (t+<<3>>)^2+(k^2 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))+(Fd^2 \[Pi] x^2 \[Tau]^2 (m-Abs[k])^2)/H^2) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-(5.55 (<<1>>))/(H^2 \[CapitalTheta]0^2)-<<1>>/<<1>>-\[Pi] ((2 k Q Tp v)/(d H)+f^2 (t+<<3>>)^2+(k^2 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))+(Fd^2 \[Pi] x^2 \[Tau]^2 (m-Abs[k])^2)/H^2) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

General::stop: Further output of NIntegrate::inumr will be suppressed during this calculation. >>

ListLinePlot::lpn: 511 NIntegrate[Exp[(x^2 (\[Pi] Power[<<2>>] Power[<<2>>] Power[<<2>>]))/Power[<<2>>]-(0.00005 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>])/Times[<<3>>]-(100 Power[<<2>>] Power[<<2>>] Power[<<2>>])/Times[<<4>>]-(100 Power[<<2>>] Power[<<2>>] Power[<<2>>])/Times[<<4>>]-(5.55 Plus[<<2>>])/Times[<<2>>]-\[Pi] (Times[<<2>>]+Times[<<3>>]+Times[<<2>>])],{x,-\[Infinity],\[Infinity]},<<3>>,Method->AdaptiveMonteCarlo] is not a list of numbers or pairs of numbers. >>

In[2]:= ListLogPlot[Transpose[{t, pp[tt_]}]]

During evaluation of In[2]:= NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-(5.55 (<<1>>))/(H^2 \[CapitalTheta]0^2)-<<1>>/<<1>>-\[Pi] ((2 k Q Tp v)/(d H)+f^2 (t+<<3>>)^2+(k^2 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))+(Fd^2 \[Pi] Tp^2 x^2 (m-Abs[k])^2)/H^2) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

During evaluation of In[2]:= Transpose::nmtx: The first two levels of the one-dimensional list {t,511 NIntegrate[Exp[(\[Pi] Fd^2 Tp^2 Plus[<<2>>]^2 x^2)/Power[<<2>>]-Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-100 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-100 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-5.55 Plus[<<2>>] Power[<<2>>]-\[Pi] Plus[<<3>>]],{x,-\[Infinity],\[Infinity]},{y,-\[Infinity],\[Infinity]},MaxRecursion->40,AccuracyGoal->60,Method->AdaptiveMonteCarlo]} cannot be transposed. >>

During evaluation of In[2]:= NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-(5.55 (<<1>>))/(H^2 \[CapitalTheta]0^2)-<<1>>/<<1>>-\[Pi] ((2 k Q Tp v)/(d H)+f^2 (t+<<3>>)^2+(k^2 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))+(Fd^2 \[Pi] Tp^2 x^2 (m-Abs[k])^2)/H^2) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

During evaluation of In[2]:= Transpose::nmtx: The first two levels of the one-dimensional list {t,511 NIntegrate[Exp[(\[Pi] Fd^2 Tp^2 Plus[<<2>>]^2 x^2)/Power[<<2>>]-Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-100 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-100 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-5.55 Plus[<<2>>] Power[<<2>>]-\[Pi] Plus[<<3>>]],{x,-\[Infinity],\[Infinity]},{y,-\[Infinity],\[Infinity]},MaxRecursion->40,AccuracyGoal->60,Method->AdaptiveMonteCarlo]} cannot be transposed. >>

During evaluation of In[2]:= NIntegrate::inumr: The integrand E^(-((100 lm^2 s1^2 x^2)/(H^2 L^2 \[Pi]^2 s2^2))-(100 lm^2 s1^2 y^2)/(H^2 L^2 \[Pi]^2 s2^2)-(5.55 (<<1>>))/(H^2 \[CapitalTheta]0^2)-<<1>>/<<1>>-\[Pi] ((2 k Q Tp v)/(d H)+f^2 (t+<<3>>)^2+(k^2 Tp^2 v^2 \[Tau]^2)/(d^2 H^2))+(Fd^2 \[Pi] Tp^2 x^2 (m-Abs[k])^2)/H^2) has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,1},{0,1}}. >>

During evaluation of In[2]:= General::stop: Further output of NIntegrate::inumr will be suppressed during this calculation. >>

During evaluation of In[2]:= Transpose::nmtx: The first two levels of the one-dimensional list {t,511 NIntegrate[Exp[(\[Pi] Fd^2 Tp^2 Plus[<<2>>]^2 x^2)/Power[<<2>>]-Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-100 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-100 Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-5.55 Plus[<<2>>] Power[<<2>>]-\[Pi] Plus[<<3>>]],{x,-\[Infinity],\[Infinity]},{y,-\[Infinity],\[Infinity]},MaxRecursion->40,AccuracyGoal->60,Method->AdaptiveMonteCarlo]} cannot be transposed. >>

During evaluation of In[2]:= General::stop: Further output of Transpose::nmtx will be suppressed during this calculation. >>

During evaluation of In[2]:= ListLogPlot::lpn: Transpose[{t,511 NIntegrate[Exp[\[Pi] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-Times[<<5>>]-Times[<<5>>]-Times[<<5>>]-Times[<<3>>]-Times[<<2>>]],{x,-\[Infinity],\[Infinity]},{y,-\[Infinity],\[Infinity]},MaxRecursion->40,AccuracyGoal->60,Method->AdaptiveMonteCarlo]}] is not a list of numbers or pairs of numbers. >>

During evaluation of In[2]:= ListLogPlot::lpn: Transpose[{t,511 NIntegrate[Exp[\[Pi] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>] Power[<<2>>]-Times[<<5>>]-Times[<<5>>]-Times[<<5>>]-Times[<<3>>]-Times[<<2>>]],{x,-\[Infinity],\[Infinity]},{y,-\[Infinity],\[Infinity]},MaxRecursion->40,AccuracyGoal->60,Method->AdaptiveMonteCarlo]}] is not a list of numbers or pairs of numbers. >>

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 10:14 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
По поводу конкретно вашей задачи лучше попросите Leierkastenmann снова зайти в тему, это ведь он, ЕМНИП, помогал вам с кодом.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 10:32 
Аватара пользователя


15/01/06
200
salang, давайте пока без кода скажите мне лучше, какой график p(t) Вы хотите построить? А то я вижу в Вашем коде море попыток что-то изобразить, но из них мне не очень понятно, что же в итоге нужно.

А так в целом по коду у Вас опять куда-то теряются те изменения, про которые я писал.
1. В определении функции вместо переменной tt объявилась снова t и функция перестала быть вообще зависимой от каких-то переменных.
2. Судя по приведенному коду с сообщениями Математики вы не инициализируете переменные, необходимые для численного расчета, отсюда тот ворох ошибок, которые пишет Математика.
3. Различайте все же дискретные и непрерывные графики. Дискретные (у них обычно List есть в названии) всегда строятся по точкам, им надо явным образом задать массив этих точек, функции им передавать нельзя. А вот непрерывным как раз наоборот, давайте для построения функцию.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 11:23 


14/10/12
210
рассматриваются 2 варианта задания времени- в виде одномерного массива и непрерывного значения. Какой получится- и хорошо. Этот вариант правильный?:

(Оффтоп)

Код:
c = 3*10^8;
H = 7.2*10^5;
\[Tau] = 47*10^-6;
Fd = 7200;
Tp = 50*10^-6;
f = 3.5*10^8;
v = 7500;
Q = 18000;
L = 100;
s2 = 0.003;
s1 = 2;
\[CapitalTheta]0 = 0.018;
m = 256;
\[Lambda] = 0.022;
n = 3;
lm = 25;
d = 1.2;
\[Lambda] = 0.022;
n = 3;


pp[tt_] = Sum[
  NIntegrate [
   Exp[(\[Pi]*Fd^2*Tp^2*(m - Abs[k])^2 *x^2)/H^2 - (
     n^2*\[Pi]^2*d^2*y^2 )/(\[CapitalTheta]0^2*\[Lambda]^2 *H^2*141^2) - (
     100*lm^2*x^2*s1^2)/(H^2*L^2*\[Pi]^2*s2^2) - (100*lm^2*y^2*s1^2)/(
     H^2*L^2*\[Pi]^2*s2^2) - (5.55*(y^2 + x^2))/(
     H^2*\[CapitalTheta]0^2) - \[Pi] * (f^2 *(t - k*Tp - x^2/(c*H) - y^2/(
           c*H))^2 +
        2*Q*(v*k*Tp)/(H*d) + \[Tau]^2*((v*k*Tp)/(H*d))^2 )], {x, -Infinity,
    Infinity}, {y, -Infinity, Infinity}, MaxRecursion -> 40,
   AccuracyGoal -> 60, Method -> "AdaptiveMonteCarlo"], {k, -255, 255}]


LogPlot[pp[tt_], {t, -10^(-8), 200*10^(-8)}]

t = List[ -10^-8, -10^-9, 0, 10^-11, 10^-10, 10^-9, 10^-8, 20*10^-7];
p[tt_] = Sum[
  NIntegrate[
   Exp[x^2*(\[Pi]*Fd^2*\[Tau]^2*(m - Abs[k])^2)/
       H^2 - (0.00005*n^2*\[Pi]^2*d^2*y^2)/(\[CapitalTheta]0^2*\[Lambda]^2*
        H^2) - (100*lm^2*x^2*s1^2)/(H^2*L^2*\[Pi]^2*s2^2) - (100*lm^2*y^2*
        s1^2)/(H^2*L^2*\[Pi]^2*
        s2^2) - (5.55*(y^2 +
          x^2))/(H^2*\[CapitalTheta]0^2) - \[Pi]*(f^2*(t - k*Tp - x^2/(c*H) -
            y^2/(c*H))^2 +
        2*Q*(v*k*Tp)/(H*d) + \[Tau]^2*((v*k*Tp)/(H*d))^2)], {x, -Infinity,
    Infinity}, {y, -Infinity, Infinity}, MaxRecursion -> 40,
   AccuracyGoal -> 60, Method -> "AdaptiveMonteCarlo"], {k, -255, 255}]

ListLogPlot[%, AxesLabel -> {"t", "P(t)"}, PlotStyle -> PointSize[0.1]]
ListLogPlot[Transpose[{t, p}]]

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 14:44 
Аватара пользователя


15/01/06
200
salang, у меня такое чувство, что Вы все время что-то пытаетесь угадать. Половина приведенного кода с ошибками. Вот рабочий код
Код:
c = 3*10^8;
H = 7.2*10^5;
\[Tau] = 47*10^-6;
Fd = 7200;
Tp = 50*10^-6;
f = 3.5*10^8;
v = 7500;
Q = 18000;
L = 100;
s2 = 0.003;
s1 = 2;
\[CapitalTheta]0 = 0.018;
m = 256;
\[Lambda] = 0.022;
n = 3;
lm = 25;
d = 1.2;
\[Lambda] = 0.022;
n = 3;
t = List[-10^-8, -10^-9, 0, 10^-11, 10^-10, 10^-9, 10^-8, 20*10^-7];
pp[tt_] :=
  Sum[NIntegrate[
    Exp[(\[Pi]*Fd^2*Tp^2*(m - Abs[k])^2*x^2)/
       H^2 - (n^2*\[Pi]^2*d^2*y^2)/(\[CapitalTheta]0^2*\[Lambda]^2*
         H^2*141^2) - (100*lm^2*x^2*s1^2)/(H^2*L^2*\[Pi]^2*
         s2^2) - (100*lm^2*y^2*s1^2)/(H^2*L^2*\[Pi]^2*
         s2^2) - (5.55*(y^2 +
           x^2))/(H^2*\[CapitalTheta]0^2) - \[Pi]*(f^2*(tt - k*Tp -
             x^2/(c*H) - y^2/(c*H))^2 +
         2*Q*(v*k*Tp)/(H*
             d) + \[Tau]^2*((v*k*Tp)/(H*d))^2)], {x, -Infinity,
     Infinity}, {y, -Infinity, Infinity}, MaxRecursion -> 40,
    AccuracyGoal -> 60, Method -> "AdaptiveMonteCarlo"], {k, -255,
    255}];
ListLogPlot[Transpose[{t, pp[#] & /@ t}], Joined -> True,
PlotRange -> All]

Больше код за Вас писать не буду, буду только отвечать на конкретные вопросы на базе работающего кода.
В том коде, что я написал, есть проблема - от этой функции непрерывный график все же не построить за разумное время, попытки использовать какие-то опции, которые уменьшают число точек, смысла не имеют, проще явным образом сделать разбиение по t гораздо более частым, хотя бы в 10-20 раз больше точек возьмите и будет уже более плавная кривая, таким образом можно продвигаться по разбиению до тех пор, пока гладкость и время расчета не будут наиболее оптимальными. Еще одна проблема - с таким масштабом по t нормальный график не получить, ведь разброс несколько порядков, часть точек просто "слипнется" в одну. По t тоже должно быть какое-то подобие логарифмического масштаба, только конечно с учетом того, что по t есть и отрицательные значения.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 17:46 


14/10/12
210
спасибо за код. На моей машине считается примерно 10...15мин. Но график все равно угловатый. Не совсем уверен, что правильно делать для времени нелинейный масштаб.
Почему разброс по t несколько порядков? Вроде всего один.
Почему-то на графике конечное значение t ($4\cdot10^-9$)значительно меньше, чем указанное в массиве и не меняется при увеличении исходного t. В чем моя ошибка?
Что означает
Код:
pp[#] & /@ t
?

(Оффтоп)

Код:

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 20:44 
Заслуженный участник


27/04/09
28128
По идее, pp[#] & /@ t означает, как и более короткий вариант pp /@ t, применение функции pp ко всем элементам t и «заворачивание» обратно. Например, f /@ {a, b, c} даст {f[a], f[b], f[c]}.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение06.01.2014, 21:12 


14/10/12
210
а по поводу
Почему-то на графике конечное значение t ($4\cdot10^-9$)значительно меньше, чем указанное в массиве и не меняется при увеличении исходного t ?

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение07.01.2014, 00:47 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Насчёт логарифмического масштаба по обеим осям. Используйте функции LogLogPlot и ListLogLogPlot соответственно.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение07.01.2014, 10:39 
Аватара пользователя


15/01/06
200
salang, надо явно указать в ListLogPlot опцию PlotRange -> {All, {Min[t], Max[t]}} и будет строить по всей оси.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение07.01.2014, 10:54 


14/10/12
210
c нелинейным временем график вообще на себя не похож, видимо, привычка. С опцией ${All, {Min[t], Max[t]}}$ график стал похож на правильный, но максимальное время все равно $10^-8$, а надо на 2 порядка больше и по вертикали начинается не от нуля, а от $10^4$. Как это исправить?

(Оффтоп)

Код:
In[25]:= c = 3*10^8;
H = 7.2*10^5;
\[Tau] = 47*10^-6;
Fd = 7200;
Tp = 50*10^-6;
f = 3.5*10^8;
v = 7500;
Q = 18000;
L = 100;
s2 = 0.003;
s1 = 2;
\[CapitalTheta]0 = 0.018;
m = 256;
\[Lambda] = 0.022;
n = 3;
lm = 25;
d = 1.2;
\[Lambda] = 0.022;
n = 3;
t = List[-10^-8, -10^-9, 0, 10^-11, 10^-10, 10^-9, 10^-8, 20*10^-7,
   2*10^-6];
pp[tt_] :=
  Sum[NIntegrate[
    Exp[(\[Pi]*Fd^2*Tp^2*(m - Abs[k])^2*x^2)/
       H^2 - (n^2*\[Pi]^2*d^2*y^2)/(\[CapitalTheta]0^2*\[Lambda]^2*
         H^2*141^2) - (100*lm^2*x^2*s1^2)/(H^2*L^2*\[Pi]^2*
         s2^2) - (100*lm^2*y^2*s1^2)/(H^2*L^2*\[Pi]^2*
         s2^2) - (5.55*(y^2 +
           x^2))/(H^2*\[CapitalTheta]0^2) - \[Pi]*(f^2*(tt - k*Tp -
             x^2/(c*H) - y^2/(c*H))^2 +
         2*Q*(v*k*Tp)/(H*
             d) + \[Tau]^2*((v*k*Tp)/(H*d))^2)], {x, -Infinity,
     Infinity}, {y, -Infinity, Infinity}, MaxRecursion -> 40,
    AccuracyGoal -> 60, Method -> "AdaptiveMonteCarlo"], {k, -255,
    255}];
ListLogLogPlot[Transpose[{t, pp[#] & /@ t}], Joined -> True,
PlotRange -> {All, {Min[t], Max[t]}}]

In[24]:= ListLogPlot[Transpose[{t, pp[#] & /@ t}], Joined -> True,
PlotRange -> {All, {Min[t], Max[t]}}]

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение07.01.2014, 11:15 
Аватара пользователя


15/01/06
200
Про логарифмический масштаб по t я уже кажется писал, что в чистом виде он не годится, потому что t отрицательные есть. Такие точки при построении просто будут отброшены. Последняя точка не отображается, потому что для нее не существует логарифм, чтобы ее отобразить надо просто значение поменять на какое-нибудь очень маленькое значение, но не нулевое.

 Профиль  
                  
 
 Re: численное решение интеграла от экспоненты в Mathematica
Сообщение07.01.2014, 17:26 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Leierkastenmann в сообщении #810512 писал(а):
Про логарифмический масштаб по t я уже кажется писал, что в чистом виде он не годится, потому что t отрицательные есть. Такие точки при построении просто будут отброшены.
В самом деле. Простите мою невнимательность.

И научите, пожалуйста, кто-нибудь salang не прятать код под оффтопик (это я как ему паллиатив предложил), а делать так, чтобы появлялась кнопка «Свернуть/Развернуть» (или как там её), а то я не умею :facepalm:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group