Skip to main content
Bounty Awarded with 50 reputation awarded by user1886681
added 374 characters in body
Source Link
Alex Trounev
  • 52.2k
  • 4
  • 53
  • 125

Finally we can test how periodic interpolation is good for this problem. We calculate 160 points in the beginning and 60 random points in the end of interval {NN,0,160}, and compare points with fp. We can check that only 3 points from 220 not follow to fp. Therefore it is good approximation.
Figure 3

Finally we can test how periodic interpolation is good for this problem. We calculate 160 points in the beginning and 60 random points in the end of interval {NN,0,160}, and compare points with fp. We can check that only 3 points from 220 not follow to fp. Therefore it is good approximation.
Figure 3

added 396 characters in body
Source Link
Alex Trounev
  • 52.2k
  • 4
  • 53
  • 125

we use filtered function fNfp based on list interpolation. First we recognize that function fp is periodic with a period of 1

lstlst1 = Table[{n, NIntegrate[ Exp[-(xp^2/(2*(30/10^6)^2))]* Evaluate[FNz /. {x -> 0, xp -> xp, nn -> n}], {xp, -300/10^6, 300/10^6}, PrecisionGoal -> 5] // Quiet}, {n, 0, 1401,.005}]; fNlst2 = Interpolation[lst];Table[{n, NIntegrate[ Exp[-(xp^2/(2*(30/10^6)^2))]*  Evaluate[FNz /. {x -> 0, xp -> xp, nn -> n}], {xp, -300/10^6, 300/10^6}, PrecisionGoal -> 5] // Quiet}, {n, 1,3,.02}]; ListPlot[{lst1,lst2}] 

Let plot lst to understand whyFigure 1 So we used filtrationcan make periodic interpolation as follows

ListLinePlot[lst1]fp = Interpolation[Join[lst1, {{1, lst1[[1, 2]]}}],   PeriodicInterpolation -> True] 

Figure 1 With With this function we integrate equation as

sol00 = NDSolve[{X''[n] - fN[n]fp[n] == 0, X[0] == 0, X'[0] == 0}, X, {n, 0, 140}] Plot[X[nn] /. {sol00}, {nn, 0, 140},Frame -> True, FrameLabel -> {"N", "X"}] 

Figure 2Figure 2

we use filtered function fN based on list interpolation

lst = Table[{n, NIntegrate[ Exp[-(xp^2/(2*(30/10^6)^2))]* Evaluate[FNz /. {x -> 0, xp -> xp, nn -> n}], {xp, -300/10^6, 300/10^6}, PrecisionGoal -> 5] // Quiet}, {n, 0, 140}]; fN = Interpolation[lst]; 

Let plot lst to understand why we used filtration

ListLinePlot[lst1] 

Figure 1 With this function we integrate equation as

sol00 = NDSolve[{X''[n] - fN[n] == 0, X[0] == 0, X'[0] == 0}, X, {n, 0, 140}] Plot[X[nn] /. {sol00}, {nn, 0, 140},Frame -> True, FrameLabel -> {"N", "X"}] 

Figure 2

we use filtered function fp based on list interpolation. First we recognize that function fp is periodic with a period of 1

lst1 = Table[{n, NIntegrate[ Exp[-(xp^2/(2*(30/10^6)^2))]* Evaluate[FNz /. {x -> 0, xp -> xp, nn -> n}], {xp, -300/10^6, 300/10^6}, PrecisionGoal -> 5] // Quiet}, {n, 0, 1,.005}]; lst2 = Table[{n, NIntegrate[ Exp[-(xp^2/(2*(30/10^6)^2))]*  Evaluate[FNz /. {x -> 0, xp -> xp, nn -> n}], {xp, -300/10^6, 300/10^6}, PrecisionGoal -> 5] // Quiet}, {n, 1,3,.02}]; ListPlot[{lst1,lst2}] 

Figure 1 So we can make periodic interpolation as follows

fp = Interpolation[Join[lst1, {{1, lst1[[1, 2]]}}],   PeriodicInterpolation -> True] 

With this function we integrate equation as

sol00 = NDSolve[{X''[n] - fp[n] == 0, X[0] == 0, X'[0] == 0}, X, {n, 0, 140}] Plot[X[nn] /. {sol00}, {nn, 0, 140},Frame -> True, FrameLabel -> {"N", "X"}] 

Figure 2

added 3 characters in body
Source Link
Alex Trounev
  • 52.2k
  • 4
  • 53
  • 125
(*constants*)e = -1.60217733*10^-19; m = 9.109389699999999*10^-31; epsilon = 8.854187817620391*10^-12; lw = 0.026; kk = 1; beta = Sqrt[1 - 1/(4000/0.511)^2]; gamma = 4000/0.511; c = 3*10^8; kw = (2 Pi)/0.026; sigma = 10^(-8); coeff = ((e*lw^2)/(gamma*m*beta^2*c^2))* (1/(10^10*e)/((2*Pi*(30/10^6))/10^5))* Exp[-(sigma^2/(2*(10^(-5))^2))]; (*basic equations*) rs2 = {zp, xp + kk/(gamma*kw) Sin[kw*zp], 0}; ro2 = {(nn + 10000)*lw, x + kk/(gamma*kw) Sin[kw*(nn + 10000)*lw], 0}; betas = {beta - kk^2/(4 gamma^2) Cos[2 kw*zp], kk/gamma Cos[kw*zp], 0}; betao = {beta - kk^2/(4 gamma^2) Cos[2 kw*(nn + 10000)*lw], kk/gamma Cos[kw*(nn + 10000)*lw], 0}; betaDot = {(c*kk^2*kw)/(2 gamma^2) Sin[ 2 kw*zp], -((c*kk*kw)/gamma) Sin[kw*zp], 0}; deltar2 = ro2 - rs2; Rgam2 = Sqrt[deltar2[[1]]^2 + deltar2[[2]]^2]; Ec2 = (e/(4 Pi*epsilon)) (deltar2/Rgam2 - betas)/(gamma^2 Rgam2^2 (1 - (deltar2/Rgam2).betas)^3); Erad2 = (e/(4 Pi*epsilon)) Cross[deltar2/Rgam2, Cross[deltar2/Rgam2 - betas, betaDot]]/(c* Rgam2*(1 - (deltar2/Rgam2).betas)^3); Bc2 = Cross[deltar2/Rgam2, Ec2]; Brad2 = Cross[deltar2/Rgam2, Erad2]; Fbc2 = Cross[betao, Bc2]; Fbrad2 = Cross[betao, Brad2]; sumEtran = (Ec2[[2]] + Erad2[[2]]); sumFBtran = Fbc2[[2]] + Fbrad2[[2]]; ZPRIME[nn_?NumericQ, x_?NumericQ] := zp /. FindRoot[sigma == (1/(gamma*kw))*Sqrt[gamma^2 + kk^2]* (EllipticE[kw*(nn + 10000)*lw, kk^2/(gamma^2 + kk^2)] - EllipticE[kw*zp, kk^2/(gamma^2 + kk^2)]) - beta*Sqrt[((nn + 10000)*lw - zp)^2 + (x + (kk*Sin[kw*(nn + 10000)*lw])/(gamma*kw) - (kk*Sin[kw*zp])/(gamma*kw))^2], {zp, 0}]; FNz = coeff*(sumEtran + sumFBtran) /. {zp -> ZPRIME[nn, x]x-xp]}; 

Figure 1Figure 1 With this function we integrate equation as

Figure 2Figure 2

(*constants*)e = -1.60217733*10^-19; m = 9.109389699999999*10^-31; epsilon = 8.854187817620391*10^-12; lw = 0.026; kk = 1; beta = Sqrt[1 - 1/(4000/0.511)^2]; gamma = 4000/0.511; c = 3*10^8; kw = (2 Pi)/0.026; sigma = 10^(-8); coeff = ((e*lw^2)/(gamma*m*beta^2*c^2))* (1/(10^10*e)/((2*Pi*(30/10^6))/10^5))* Exp[-(sigma^2/(2*(10^(-5))^2))]; (*basic equations*) rs2 = {zp, xp + kk/(gamma*kw) Sin[kw*zp], 0}; ro2 = {(nn + 10000)*lw, x + kk/(gamma*kw) Sin[kw*(nn + 10000)*lw], 0}; betas = {beta - kk^2/(4 gamma^2) Cos[2 kw*zp], kk/gamma Cos[kw*zp], 0}; betao = {beta - kk^2/(4 gamma^2) Cos[2 kw*(nn + 10000)*lw], kk/gamma Cos[kw*(nn + 10000)*lw], 0}; betaDot = {(c*kk^2*kw)/(2 gamma^2) Sin[ 2 kw*zp], -((c*kk*kw)/gamma) Sin[kw*zp], 0}; deltar2 = ro2 - rs2; Rgam2 = Sqrt[deltar2[[1]]^2 + deltar2[[2]]^2]; Ec2 = (e/(4 Pi*epsilon)) (deltar2/Rgam2 - betas)/(gamma^2 Rgam2^2 (1 - (deltar2/Rgam2).betas)^3); Erad2 = (e/(4 Pi*epsilon)) Cross[deltar2/Rgam2, Cross[deltar2/Rgam2 - betas, betaDot]]/(c* Rgam2*(1 - (deltar2/Rgam2).betas)^3); Bc2 = Cross[deltar2/Rgam2, Ec2]; Brad2 = Cross[deltar2/Rgam2, Erad2]; Fbc2 = Cross[betao, Bc2]; Fbrad2 = Cross[betao, Brad2]; sumEtran = (Ec2[[2]] + Erad2[[2]]); sumFBtran = Fbc2[[2]] + Fbrad2[[2]]; ZPRIME[nn_?NumericQ, x_?NumericQ] := zp /. FindRoot[sigma == (1/(gamma*kw))*Sqrt[gamma^2 + kk^2]* (EllipticE[kw*(nn + 10000)*lw, kk^2/(gamma^2 + kk^2)] - EllipticE[kw*zp, kk^2/(gamma^2 + kk^2)]) - beta*Sqrt[((nn + 10000)*lw - zp)^2 + (x + (kk*Sin[kw*(nn + 10000)*lw])/(gamma*kw) - (kk*Sin[kw*zp])/(gamma*kw))^2], {zp, 0}]; FNz = coeff*(sumEtran + sumFBtran) /. {zp -> ZPRIME[nn, x]}; 

Figure 1 With this function we integrate equation as

Figure 2

(*constants*)e = -1.60217733*10^-19; m = 9.109389699999999*10^-31; epsilon = 8.854187817620391*10^-12; lw = 0.026; kk = 1; beta = Sqrt[1 - 1/(4000/0.511)^2]; gamma = 4000/0.511; c = 3*10^8; kw = (2 Pi)/0.026; sigma = 10^(-8); coeff = ((e*lw^2)/(gamma*m*beta^2*c^2))* (1/(10^10*e)/((2*Pi*(30/10^6))/10^5))* Exp[-(sigma^2/(2*(10^(-5))^2))]; (*basic equations*) rs2 = {zp, xp + kk/(gamma*kw) Sin[kw*zp], 0}; ro2 = {(nn + 10000)*lw, x + kk/(gamma*kw) Sin[kw*(nn + 10000)*lw], 0}; betas = {beta - kk^2/(4 gamma^2) Cos[2 kw*zp], kk/gamma Cos[kw*zp], 0}; betao = {beta - kk^2/(4 gamma^2) Cos[2 kw*(nn + 10000)*lw], kk/gamma Cos[kw*(nn + 10000)*lw], 0}; betaDot = {(c*kk^2*kw)/(2 gamma^2) Sin[ 2 kw*zp], -((c*kk*kw)/gamma) Sin[kw*zp], 0}; deltar2 = ro2 - rs2; Rgam2 = Sqrt[deltar2[[1]]^2 + deltar2[[2]]^2]; Ec2 = (e/(4 Pi*epsilon)) (deltar2/Rgam2 - betas)/(gamma^2 Rgam2^2 (1 - (deltar2/Rgam2).betas)^3); Erad2 = (e/(4 Pi*epsilon)) Cross[deltar2/Rgam2, Cross[deltar2/Rgam2 - betas, betaDot]]/(c* Rgam2*(1 - (deltar2/Rgam2).betas)^3); Bc2 = Cross[deltar2/Rgam2, Ec2]; Brad2 = Cross[deltar2/Rgam2, Erad2]; Fbc2 = Cross[betao, Bc2]; Fbrad2 = Cross[betao, Brad2]; sumEtran = (Ec2[[2]] + Erad2[[2]]); sumFBtran = Fbc2[[2]] + Fbrad2[[2]]; ZPRIME[nn_?NumericQ, x_?NumericQ] := zp /. FindRoot[sigma == (1/(gamma*kw))*Sqrt[gamma^2 + kk^2]* (EllipticE[kw*(nn + 10000)*lw, kk^2/(gamma^2 + kk^2)] - EllipticE[kw*zp, kk^2/(gamma^2 + kk^2)]) - beta*Sqrt[((nn + 10000)*lw - zp)^2 + (x + (kk*Sin[kw*(nn + 10000)*lw])/(gamma*kw) - (kk*Sin[kw*zp])/(gamma*kw))^2], {zp, 0}]; FNz = coeff*(sumEtran + sumFBtran) /. {zp -> ZPRIME[nn, x-xp]}; 

Figure 1 With this function we integrate equation as

Figure 2

Source Link
Alex Trounev
  • 52.2k
  • 4
  • 53
  • 125
Loading