2014-10-26 5 views
0

Я пытаюсь решить проблему: мне нужно найти траекторию электрона в решетке графена с помощью Mathematica. Я попытался решить уравнение Кулоновской силы с помощью NDSolve и построить результат для каждого направления, но я получаю белый график. Может ли кто-нибудь помочь мне, пожалуйста? Заранее спасибо. Вот код для направления х:Невозможно решить дифференциальное уравнение Кулоновского Сила в Mathematica

coordx = {0.6327, 1.88058, 3.03927, 4.28716, 5.44584, 6.69373, 
    7.85241, 9.10029, 1.9728, 3.22069, 4.37937, 5.62726, 6.78594, 
    8.03382, 9.19251, 10.4404, 3.3129, 4.56079, 5.71947, 6.96736, 
    8.12604, 9.37393, 10.53261, 11.7805, 4.653, 5.90089, 7.05956, 
    8.30746, 9.46614, 10.71403, 11.87271, 13.1206}; 
me = 9.01*10^-31; 
pi = 3.14159; 
epsilon0 = 8.854*10^-12; 
q = -1.6*10^-19; 
Q = 1.6*10^-19; 
step = 0.01; 
Forzax[p_, r_] := 
Sum[(Q*q)/(4 pi*epsilon0*Norm[r - p[[i]]]^2), {i, Length[p]}] 
Forzax[coordx, {x[t]}]; 
NDSolve[{x''[t] == Forzax[coordx, {x[t]}]/me , x[0] == 0, 
    x'[0] == 0}, {x[t]}, {t, 0, 1500}] 
Show[ParametricPlot[Evaluate[{x[t]} /. %], {t, 0, 1500}, 
    PlotRange -> All]] 

ответ

1

Я не знаю, что вы пытаетесь построить, но эти несколько модификаций, кажется, построить вашу функцию.

sol = NDSolve[{x''[t] == Forzax[coordx, {x[t]}]/me, 
    x[0] == 0, x'[0] == 0}, {x}, {t, 0, 1500}]; 
f = sol[[1, 1, 2]]; 
Plot[f[t], {t, 0, 1500}, PlotRange -> All] 

enter image description here

+0

Я пытаюсь построить траекторию электрона в решетке графена. Итак, у меня есть мои уравнения: mx '' = Fcx; my '' = Fcy, mz '' = Fcz. Я должен решить эти уравнения и построить траекторию электрона в графе 3D x, y, z. На самом деле я просто пытаюсь построить результат одного дифференциального уравнения (первый шаг). Как я могу решить свою проблему? Я новичок в Mathematica. Спасибо за совет. – Rphil

0

Из того, что я могу сказать, что ваш код работает нормально, но сюжет пуст, потому что вы вызываете ParametricPlot только с одной функцией. Из документации, это то, как вы называете ParametricPlot:

ParametricPlot[{fx[t], fy[t]}, {t, tmin, tmax}] 

Поскольку вы до сих пор решить проблему 1D и только x[t], ParametricPlot ничего не может сделать; отсутствует координата траектории y. После того, как вы сделаете 2D-расчет, ParamatricPlot должен быть в состоянии дать вам цифру, которую вы хотите. Если вы хотите выполнить 3D-расчет, вы должны использовать ParamatricPlot3D.

Вопрос: как вы намереваетесь провести 3D-расчет электрона в графене? Движение электрона в 3-м измерении вообще не будет следовать ньютоновской механике, потому что оно ограничено в этом направлении. На самом деле, я был бы осторожен в использовании второго закона Ньютона в графене, несмотря ни на что, поскольку электроны в графене ведут себя как безмассовые частицы. Я оставляю интерпретацию результатов до вас, но физик во мне не может удержаться от этого осторожного слова.

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