WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 | 2 ||

«Г А.. Пицевич М Б.. Шундалов М сп с п олекуляр ная ектро ко ия Пр актикум БГУ 2005 Содержание Предисловие ...»

-- [ Страница 3 ] --

отведе а кон d — ст без зн к озн ч ющ я нт нных под а а а а, а а а количество позиций поля, дробную ч сть м нтиссы а а.

орм т тип имеет вид где цел я оз нт без зн к Ф а а X оля : wX, w — а конста а а а, ч ющ я длину п в логической з списке вво н писи бор д нных а а а а на а а. В ф димых или выводимых величин этому орм ту ничего не соответствует а.

При вводе этот форм т вызыв ет пропуск поля длиной в озиций При а а.

w п выводе все позиции поля з полняются пробел ми Длин поля не а а. а w должн ревосходить озиций а п 255 п.

Приложение Программа для обработ и олебательно вращательного спе тра к к - к в среде Mathematica сли возможности спектрометр не позволяют з регистриров ть Е а а а ф спектр в ци ровом виде то для р счёт молекулярных п р метров необ, а а а а и ходимо сформиров ть дв ф йл пример в которые з а а а а (r.dat p.dat, на ), а носятся результ ты измерений волновых чисел вр щ тельных линий со а а а ответствующих ветвей в порядке возр ст ния чин я с а а J (на а J = 1).

читыв ние и ветвей С а P R r = ReadList["D:\\dat\\r.dat", Real];

p = ReadList["D:\\dat\\p.dat", Real];

счёт вр щ тельных постоянных в линейном приближении Ра а а сновное колеб тельное состояние О а d2e2 = Table[r[[j - 1]] - p[[j + 1]], {j, 2, 24}];

Fit[d2e2/2, {1, j + 1}, j] Первое возбуждённое колеб тельное состояние а d2e1 = Table[r[[j]] - p[[j]], {j, 1, 25}];

Fit[d2e1/2, {1, j}, j] счёт вр щ тельных постоянных в др тичном кв приближении Ра а а а а сновное колеб тельное состояние О а d2f2 = Table[(r[[j - 1]] - p[[j + 1]])/(j + 0.5), {j,2, 24}];

Fit[d2f2, {1, (j + 1.5)^2}, j] Первое возбуждённое колеб тельное состояние а d2f1 = Table[(r[[j]] - p[[j]])/(j + 0.5), {j, 1, 25}];

Fit[d2f1, {1, (j + 0.5)^2}, j] Приложение Программа для расчёта торсионно вращательного спе тра - к оа сиальной нежёст ой моле лы в среде к к к ку Mathematica д геометрических п р метров молекулы и м сс томов ние За а а а а а m1 = ?;

m2 = ?;

r1 = ?;

r2 = ?;

phi = ?*Pi/180;

счёт дек ртовых координ т томов м трицы тензор инерции Ра а а а, а а (inercia) и м трицы инерционных постоянных а (mu) qw = Transpose[{{-r1*Sin[phi]*Sin[g/2], m2/(m1 + m2)*r1*Sin[phi]*Cos[g/2], r2/2-r1*Cos[phi]}, {0, -(m1/(m + m2))*r1*Sin[phi]*Cos[g/2], r2/2}, {0, -(m1/(m1 + m2))*r1*Sin[phi]*Cos[g/2], -(r2/2)}, {r1*Sin[phi]*Sin[g/2], m2/(m1 + m2)*r1*Sin[phi]*Cos[g/2], -(r2/2) + r1*Cos[phi]}}];

q = Flatten[Transpose[qw]];

qx = qw[[1]];

qy = qw[[2]];

qz = qw[[3]];

massa = DiagonalMatrix[{m1, m1, m1, m2, m2, m2, m2, m2, m2, m1, m1, m1}];

massa0 = DiagonalMatrix[{m1, m2, m2, m1}];

mx = Table[If[i+j!= Abs[i^2 - j^2]||(i + j)/ Integers||(i+ j-1)/ Integers, 0, If[i < j,1, -1]], {i,12}, {j, 12}];

my = Table[If[(i + j)*2 != Abs[i^2 - j^2]||Abs[i-j] != 2||(i + j)/3 Integers, 0, If[i < j, Integers||(i + j + 1)/ -1, 1]], {i, 12}, {j, 12}];

mz = Table[If[i + j != Abs[i^2 - j^2]||(i + j + 1)/ Inte gers||(i + j - 1)/ Integers, 0, If[i < j, 1, -1]], {i, 12}, {j, 12}];

iyt = TrigReduce[-D[q, g].massa.my.q];

itt = TrigReduce[D[q, g].massa.D[q, g]];

ixx = TrigReduce[qy.massa0.qy + qz.massa0.qz];

iyy = TrigReduce[qx.massa0.qx + qz.massa0.qz];

izz = TrigReduce[qx.massa0.qx + qy.massa0.qy];

ixz = TrigReduce[-qx.massa0.qz];

inercia = {{ixx, 0, ixz, 0}, {0, iyy, 0, iyt}, {ixz, 0, izz, 0}, {0, iyt, 0, itt}};

mu = TrigReduce[Inverse[inercia]];

зложение торсионной постоянной в ряд урье в приближении полу Ра Ф жёсткого внутреннего волчк а p = 5;

coeff = 16.857631296852038;

tors = coeff/2*Table[If[i < 2, 1/2*NIntegrate[1/Pi*mu[[4, 4]], {g, -Pi, Pi}], NIntegrate[1/Pi*mu[[4, 4]]*Cos[(i - 1)*g], {g, -Pi, Pi}]], {i, p}];

torsion = tors.Table[Cos[(i - 1)*g], {i, p}] Plot[torsion, {g, 0, 2*Pi}, PlotStyle -> Hue[0.9]] д нном в ри нте прогр ммы не производится унит рное преобр зо В а а а а а а в г мильтони ние н а а а а.

счёт вр щ тельных постоянных Ра а а a = NIntegrate[coeff/(2*Pi)*mu[[3, 3]], {g, -Pi, Pi}] b = NIntegrate[coeff/(2*Pi)*mu[[1, 1]], {g, -Pi, Pi}] c = NIntegrate[coeff/(2*Pi)*mu[[2, 2]], {g, -Pi, Pi}] ормиров м трицы вр щ тельного г мильтони для и р с ние н Ф а а а а а а а ( J = 1) а чёт энергий вр щ тельных состояний а а j = rotor = Simplify[Table[If[k1 < k2, If[Abs[k1 - k2] != 2, 0, Sqrt[(j*(j + 1) - (k2 - j - 2)*(k2 - j - 3))*(j*(j + 1) - (k2 - j-1)*(k2 - j - 2))]*(b - c)/4], If[k1 > k2, If[Abs[k1 - k2] != 2, 0, Sqrt[(j*(j + 1) - (k2 - j)*(k2 - j + 1))*(j*(j + 1) - (k2 - j - 1)*(k2 - j))]*(b - c)/4], j*(j + 1)*(b + c)/2 + (k1 - j - 1)^2*(a - (b + c)/2)]], {k1, 2*j + 1}, {k2, 2*j + 1}]];

MatrixForm[Eigenvalues[rotor]] д я ч сть нном в ри нте прогр ммы не вычисляется кинетическ эф В а а а льнойа ции а а ф функ ективной потенци а.

д ние р метров потенци льной функции и р зложение её в ряд у За а па а а а Ф рье в см – ( ) vc = ????;

vt = ????;

g0 = ?*Pi/180;

pot = Inverse[{{1, 1, 1, 1}, {1, Cos[g0], Cos[2*g0], Cos[3*g0]}, {0, -Sin[g0], -2*Sin[2*g0], -3*Sin[3*g0]}, {1, -1, 1, -1}}].{vc, 0, 0, vt};

potencial = pot.Table[Cos[(i - 1)*g], {i, 4}] Plot[potencial, {g, 0, 2*Pi}, PlotStyle -> Hue[0.3]] ормиров м триц г мильтони для четырёх типов торсионных ние н Ф а а а а а функ волновых ций m = 20;

vv = Table[If[i <= Length[pot], pot[[i]], 0.]], {i, 2*m+1}];

bb =2*Table[If[i <= Length[tors], tors[[i]], 0.], {i,2*m+1}];

h1 = Table[If[i < 2&&j < 2,vv[[1]], If[i < 2, 1/Sqrt[2]*vv[[j]], If[j < 2, 1/Sqrt[2]*vv[[i]], If[i < j, 1/2*(vv[[j - i + 1]] + vv[[j + i - 1]] + (i - 1)*(j - 1)*(bb[[j - i + 1]] - bb[[j + i - 1]])), If[i > j, 1/2*(vv[[i - j + 1]] + vv[[j + i - 1]] + (i - 1)*(j - 1)*(bb[[i - j + 1]] - bb[[j + i - 1]])), vv[[1]] + 1/2*vv[[2*i - 1]] + (i - 1)^2*(bb[[1]] - 1/2*bb[[2*i - 1]])]]]]], {i, m}, {j, m}];

h2 = Table[If[i < j, 1/2*(vv[[j - i + 1]] - vv[[j + i]]) + ((2*i - 1)*(2*j - 1))/8*(bb[[j - i + 1]] + bb[[j + i]]), If[i > j, 1/2*(vv[[i - j + 1]] - vv[[j + i]]) + ((2*i - 1)*(2*j - 1))/8*(bb[[i - j + 1]] + bb[[j + i]]), vv[[1]] - 1/2*vv[[i + j]] + (2*i - 1)^2/8*(2*bb[[1]] + bb[[i + j]])]], {i, m}, {j, m}];

h3 = Table[If[i < j, 1/2*(vv[[j - i + 1]] + vv[[j + i]]) + ((2*i - 1)*(2*j - 1))/8*(bb[[j - i + 1]] - bb[[j + i]]), If[i > j, 1/2*(vv[[i - j + 1]] + vv[[j + i]]) + ((2*i - 1)*(2*j - 1))/8*(bb[[i - j + 1]] - bb[[j + i]]), vv[[1]] + 1/2*vv[[i + j]] + (2*i - 1)^2/8*(2*bb[[1]] - bb[[i + j]])]], {i, m}, {j, m}];

h4 = Table[If[i < j, 1/2*(vv[[j - i + 1]] - vv[[j + i + 1]] + i*j*(bb[[j - i + 1]] + bb[[j + i + 1]])), If[i > j, 1/2*(vv[[i - j + 1]] - vv[[j + i + 1]] + i*j*(bb[[i - j + 1]] + bb[[j + i + 1]])), vv[[1]] - 1/2*vv[[i + j + 1]] + i^2*(bb[[1]] + 1/2*bb[[i + j + 1]])]], {i, m}, {j, m}];

счёт торсионных состояний и ср внение с эксперимент льны Ра энергий а а ми д нными а q1 = Eigenvalues[h1];

q2 = Eigenvalues[h2];

q3 = Eigenvalues[h3];

q4 = Eigenvalues[h4];

w1 = q1 - Min[q1];

w2 = q2 - Min[q1];

w3 = q3 - Min[q1];

w4 = q4 - Min[q1];

calculated = {{w1[[m]], w2[[m]], w3[[m]], w4[[m]]}, {w1[[m - 1]], w2[[m - 1]], w3[[m - 1]], w4[[m - 1]]}, {w1[[m - 2]], w2[[m - 2]], w3[[m - 2]], w4[[m - 2]]}, {w1[[m - 3]], w2[[m - 3]], w3[[m - 3]], w4[[m - 3]]}};

experimental1 = {{0, 0, 11.43743, 11.43743}, {254.5499, 254.5499, 370.89355, 370.89355}, {569.74283, 569.74434, 776.11239, 776.12167}, {1000.88176, 1000.93044, 1235., 1235.}};

experimental2 = {{0, 0, 0, 0}, {417.4766, 417.4766, 417.477, 417.477}, {808.0133, 808.0136, 808.0259, 808.0262}, {1171.2264, 1171.2309, 1171.5814, 1171.5858}};

experimental3 = {{0, 0, 1.88, 1.88}, {208.6, 208.6, 250.9, 250.9}, {387.7, 387.7, 511.2, 511.2}, {"no data", "no data", "no data", "no data"}};

езульт ты р счёт ергий торсионных состояний для и и Р а а а эн vt = 0, 1, 2 функ четырёх типов волновых ций т р зности между эксперимен кже, а а а т льными и вычисленными зн чениями энергий а а results1 = TableForm[{{Cos[k*g], Sin[(k + 1/2)*g], Cos[(k + 1/2)*g], Sin[k*g]}, Transpose[calculated]}] If[m1 >= 2, experimental = experimental3, If[m2 > 20, experi mental = experimental2, experimental = experimental1]];

results2 = TableForm[experimental - calculated] Plot[{potencial, q1[[m]], q4[[m]], q1[[m - 1]], q4[[m - 1]]}, {g, g0 - 1, 2*Pi - g0 + 1}, PlotRange -> {0, vt + 200}, PlotStyle -> {Hue[0.7], Hue[0.1], Hue[0.5], Hue[0.1], Hue[0.5]}] Приложение Программа для обработ и спе тра отражения в среде к к Mathematica сли возможности спектрометр не позволяют з регистриров ть Е а а а ф спектр в ци ровом виде то для р счёт спектр поглощения и спек, а а а тр льного дисперсии ход необходимо сформиров ть ф йл а а а а (reflection.dat, н пример в который з носятся результ ты измерений спектр отр же а ), т а а а а ния в виде блицы состоящей из двух столбцов волновое число ин а, :

— тенсивность.

ф читыв спектр отр жения из йл ние С а а а а а reflect = ReadList["D:\\dat\\reflection.dat", {Real, Real}];

Построение спектр отр жения по эксперимент льным точк м а а а а gr0 = ListPlot[reflect, PlotRange -> All] Построение спектр отр жения а а ListPlot[reflect, PlotJoined -> True, PlotRange -> All, PlotStyle -> Hue[0.7]] функ д спектр отр жения в виде интерполяционной ции ние За а а а ref = Interpolation[reflect, InterpolationOrder -> 1];

gr1 = Plot[ref[x], {x, 400, 4000}, PlotRange -> All, Plot Style -> Hue[0.3]] Show[gr0, gr1, PlotRange -> All] функ Продолжение ции спектр отр жения з редел ми ль а а а п а эксперимента ной обл сти а ref1[x_] = If[x < 400, ref[400]/100, If[x > 4000, ref[4000]/100, ref[x]/100]];

gr2 = Plot[ref1[x], {x, 400, 4000}, PlotRange -> All, Plot Style -> Hue[0.3]] ф счёт зы отр жённой волны Ра а а phasa = Table[{y, y/Pi*(NIntegrate[Log[ref1[x]]/(x^2 - y^2), {x, 0, y - 1.*^-7}] + NIntegrate[Log[ref1[x]]/(x^2 - y^2), {x, y + 1.*^-7, Infinity}])}, {y, 400, 4000, 1}];

Поскольку дост точно долго р счёт интегр лов а, Mathematica а производит а рекомендуется з ть р ссчит пис нный спектр льный ход ф зы в ф йл а а а а а а а strm = OpenWrite["D:\\dat\\phasa.dat"];

Write[strm, phasa];

Close[strm];

ф Построение спектр зы а а ListPlot[phasa, PlotJoined -> True, PlotRange -> All, PlotStyle -> Hue[0.7]] нтерполяция функции ф зы И а phasa1 = Interpolation[phasa, InterpolationOrder -> 1];

д дения и р счёт р метров ние За а угла па а па а teta = 35*Pi/180;

a = (Cos[teta]*(1 - ref1[x]))/(1 + ref1[x] - 2*Sqrt[ref1[x]]*Cos[phasa1[x]]);

b = (-2*Cos[teta]*Sqrt[ref1[x]]*Sin[phasa1[x]])/(1 + ref1[x] - 2*Sqrt[ref1[x]]*Cos[phasa1[x]]);

1 = a^2 - b^2 + Sin[teta]^2;

2 = 2*a*b;

счёт дисперсии Ра gr3 = Plot[Sqrt[1/2*( 1^2 + 1 + Sqrt[ 2^2])], {x, 400, 4000}, PlotRange -> All, PlotStyle -> Hue[0.7]] счёт и спектр оглощения Ра построение а п gr4 = Plot[ 1 + Sqrt[ 2^2])]), {x, 400, 2/(2*Sqrt[1/2*( 1^2 + 4000}, PlotRange -> All, PlotStyle -> Hue[0.05]] Show[gr2, gr3, gr4, PlotRange -> All]

Pages:     | 1 | 2 ||



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.