2014 dxdy logo

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

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




 
 Wolfram Mathematica: опять массивы
Сообщение24.04.2013, 16:44 
Код:
a = {1, 1.2*10^-1, 1.4*10^-3, 1.05*10^-3, 1.4*10^-4, 1.8*10^-5,
  1.7*10^-5, 1.2*10^-5, 1.21*10^-5, 1.05*10^-6}

\[Epsilon]0[q_] := q^2/(2 40 1822) 27.21
W[n_, q_] :=
2/Sqrt[\[Pi]]*
  Gamma[3/2,
   3/2 (0.3*2.7*n^(2/3))/\[Epsilon]0[q]] E^(-n (\[Epsilon]0[q]/2.7))

ListPlot3D[Abs[W[n, q]*10 - a[[n]]], {n, 2, 9}, {q, 1, 200}]


Выдает целую массу ошибок, которые сводятся как я понял, что он чего-то из массива не может правильно подставить. Как можно исправить?

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение24.04.2013, 16:51 
Аватара пользователя
Итератор $n$ должен принимать только натуральные значения. Вы же хотите нарисовать непрерывный график. Как Математика должна понимать выражение
Sergey K в сообщении #715048 писал(а):
a[[n]]

в
Код:
ListPlot3D[Abs[W[n, q]*10 - a[[n]]], {n, 2, 9}, {q, 1, 200}]

при $n=2.0001$?

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение24.04.2013, 17:19 
Аватара пользователя
Bulinator, откуда мысль о непрерывности? $n$ меняется от двух до девяти, очевидно, с единичным шагом. Тут не в этом дело. Sergey K, вы вообще неверно используете ListPlot3D. Ему на вход нужно подавать готовый массив. Давайте попробуем так:
Код:
a = {1, 1.2*10^-1, 1.4*10^-3, 1.05*10^-3, 1.4*10^-4, 1.8*10^-5,
   1.7*10^-5, 1.2*10^-5, 1.21*10^-5, 1.05*10^-6};
\[Epsilon]0[q_] := q^2/(2 40 1822) 27.21
W[n_, q_] :=
2/Sqrt[\[Pi]]*
  Gamma[3/2,
   3/2 (0.3*2.7*n^(2/3))/\[Epsilon]0[q]] E^(-n (\[Epsilon]0[q]/2.7))
t = Table[Abs[W[n, q]*10 - a[[n]]], {n, 2, 9}, {q, 1, 200}];
ListPlot3D[t]

Уже лучше, не правда ли? Не уверен, что это именно то, что вы хотели, но тем не менее.

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение24.04.2013, 17:24 
о, заработало! спасибо. а теперь, почему же она не хотела строить по точкам? потому, что по точкам нужно всегда массив отдавать?

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение24.04.2013, 17:31 
Аватара пользователя
Синтаксис функций типа Plot и типа ListPlot разнится. В функции второго типа нужно передавать уже готовый массив. Сравните мой код и свой.

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение24.04.2013, 19:30 
а какой функцией вы посоветуете воспользоваться, если n имеет смысл только целое? как исключить 3,5 например?

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение25.04.2013, 00:29 
Аватара пользователя
Не совсем понял ваш вопрос. Можно пример?

 
 
 
 Re: Wolfram Mathematica: опять массивы
Сообщение25.04.2013, 17:19 
n - количество атомов, q - подгоночный коэффициент, высота точки на графике - отклонение модели от эксперимента.

при помощи чего можно отобразить отдельные точки над целыми значениями n, что бы не выглядывать их из всего массива. или может, чем-то раскрасить область z=0?

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group