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, Супермодераторы



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

Сейчас этот форум просматривают: sqribner48


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

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