Лекция Компютърно моделиране във физиката роля



Дата02.09.2017
Размер127.51 Kb.
#29356
ТипЛекция



Лекция 1. Компютърно моделиране във физиката - роля


и значение. Алгоритми.
Физическата наука се развива с помощта на два основни метода – експеримент и теория. В експеримента изследваната система се подлага на измервания и се получават числени резултати. В теорията се създава модел на изследваната система, обикновенно с помощта на система от уравнения. Качеството на модела след това се проверява в зависимост от това дали описва верно поведението на системата в определени случай, за които уравненията могат да се решат и за които могат да се получат експериментални резултати. Това често е свързано със значително упростяване и идеализиране на системата, което я отдалечава от реалността.

Например във физиката на кондензираната материя модела на междумолекулните сили може да бъде изчислен точно само в два екстремни случая: или за молекула съставена от два атома или за идеална безкрайна кристална решетка. За съжаление много важни физически задачи (както от академичен така и от практически интерес) не могат да се сведат до специални упростени модели. Да споменем само малка част от подобни проблеми – физиката и химията на дефектите в твърди тела, повърхностните явления, системи съставени от кластери от атоми, органичните молекули с голям брой степени на свобода, точното описание на температурни явления включващо анхармонични ефекти и фазови преходи, неподредените системи където липсата на симетрия пречи да се упрости разглеждането и т.н.

С откриването на бързи компютри, които започнаха да се използват през 50-те години положението се промени като възникна нов метод на познанието намиращ се между теорията и експеримента т. наречения компютърен експеримент наричан още компютърна симулация. При компютърния експеримент отново се използва теоретичен модел, но изчисленията се извършват числено от компютъра по зададена рецепта наречена алгоритъм. Алгоритъмът се реализира с помощта на подходящ програмен език. По този начин могат да се създават по-сложни модели и да се изследват по-реалистични системи, което позволява проверката на модела да се извършва за реални експерименти проведени не в екстремни идеализирани условия.

Компютърната симулация (КС) промени класическата връзка между теория и експеримент. От една страна КС позволява да се увеличат изискванията за точност на модела описващ системата. Например симулация с метода молекулярна динамика позволява да се оцени температурата на топене на даден материал, което по аналитичен път не може да се направи. Така КС може да проверява сложни модели в критични области като получената информация позволява да се усъвършенства модела.

От друга страна КС често може да се приближи до реални експериментални условия, така че резултатите получени от изчисленията да се сравняват директно с експерименталните резултати. Това помага да се разберат на микроскопично ниво (теоретичен модел) експерименталните резултати получени на макроскопично ниво. Също така могат да се изследват числено екстремни експериментални условия, които не могат да се реализират на практика, например свръхвисоко налягане или температура. Не на последно място КС позволява провеждането на т.нар. мисловни експерименти при нереални условия, които не могат да се реализират в действителност. Изходът от «мисловният експеримент» позволява да разберем по-добре явлението и да го използваме в реални условия. Фантазията и творчеството са важни качества за КС.

Какво е КС – теория или експеримент?

От една страна е теория защото първо се създава модел на реалната система както е в теорията, и не се работи с реалната система както е в експеримента. От друга страна процедурата за проверка на модела чрез КС напомня проверка чрез експеримент т.е. получаваме резултати и ги анализираме точно както един експериментатор ще постъпи. Затова точен отговор на поставения въпрос не може да се даде. Може да се направи и по-философски анализ на поставения въпрос. Теорията по традиция е свързана с т.нар. редукционен подход. Сложните явления се атакуват чрез свеждане (редуциране) сложната система до една или повече по-прости подсистеми. Това редуциране продължава докато получената подсистема стане достатъчно проста за да се представи с модел, който може да се реши. Когато КС просто проверява моделите в сложни ситуации, които не могат да се проверят аналитично КС остава на теоретично ниво. Важно е да се разбере обаче че КС може да има по-важно значение от това на инструмент за проверка на теорията. КС може да е алтернатива на редукционизма тъй като благодарение на КС някой по-сложни подсистеми стават решими т.е. повдига се прага, който разделя решимите от нерешимите модели. Така КС позволява да се работи с по-сложни модели отколкото анализа позволява.

Един пример за гореказаното е междуатомния потенциал. В миналото взаимодействията се изучаваха с потенциали между две тела, които имат прост аналитичен вид – например потенциал на Морс или потенциал на Ленард-Джонс. Днес най-точните потенциали съдържат членове описващи взаимодействие между много тела, които са дефинирани числово чрез силите предсказвани с помощта на метода на първия принцип (first principle). По този начин сме се изкачили по стълбичката на редукционизма като се постига по-добър реализъм и по-голяма точност в описание на изследваното явление. Вижда се, че КС не е единствено връзка между теорията и експеримента, но дава нови възможности за развитие на научните изследвания.

По отношение на приноса на КС към експеримента можем да кажем, че в КС може да се експериментира с различни потенциали на вхаимодействие или други съставни части на системата, докато в експеримента можем да варираме само макровеличини като температура, налягане и др.


Етапи в компютърното моделиране


В последните деситилетия се утвърди схващането, че наред с теоретичната и експерименталната физика компютърното моделиране е обособена област или по-точно подход във физиката със свойте специфични методи и резултати, които не могат да се получат с други методи. В подхода си към проблемите компютърното моделиране стои по-близо до теоретичната физика, защото колкото и реалистични да са моделите те все пак са само модели на заобикалящата ни среда. Освен това преди да се пристъпи към създаване на компютърни модели трябва да се познават много добре резултатите, които дават аналитично решимите модели на същия проблем. От една страна това ни насочва към онези проблеми които не могат да се решат с чисто теоретични подходи, а от друга страна са задължително условие за правилно интерпретиране на получените резултати.

Написването на една компютърна програма до голяма степен повтаря етапите на един експеримент. Не случайно наричат компютърното моделиране още числен експеримент. Написването на програмата и изчистването и от синтактични и логични грешки е аналогично на създаването на експериментална установка. Наличието на полезен сигнал от установката обаче не означава, че експеримента дава коректни резултати. По същият начин фактът, че една програма няма синтактични грешки (т.е. програмата дава някакъв резултат) не означава, че тя работи правилно. Затова анализът на възможните грешки и факторите, които стоят в тяхната основа е неизменен и до голяма степен най-важен етап във всеки физически експеримент. Експерименталните грешки биват случайни и систематични. Първите трябва да бъдат сведени близо до възможния теоретичен минимум, а вторите трябва да бъдат отчетени и доколкото е възможно да бъдат избегнати. В този случай аналогията с компютърното моделиране е пълна: един грешен алгоритъм може да даде недопустими систематични грешки, а неправилно подбрани параметри на програмата (например стъпката във времето или недостатъчна точност) могат да доведат до флуктуации много по-големи от теоретично предсказаните.

Също както при сложен експеримент отделните части на една програма трябва щателно да се тестват преди да се сглобят в едно цяло. След сглобяването на една установка и проверката на получените резултати следва тяхния анализ. Нито един експеримент не се поставя сам за себе си, извън рамките на определени хипотези и резултатите винаги се интерпретират в рамките на даден модел, било за да го отхвърлят или за да го потвърдят. По същия начин се анализират резултатите от числения експеримент. Съпоставянето с теоретичните резултати, получени от опростени модели показва първо доколко валидни са направените приближения и второ, по-важно, позволява да се оценят новите резултати и да се навлезе по-дълбоко в същноста на изучаваните явления.

Въведение в метода на компютърния експеримент (КЕ)


С помощта на КЕ получаваме възможност да изучаваме сложни системи, които не са изследвани аналитично. Затова КЕ се явява еталон за сравнение на различни приближени аналитични методи. От друга страна величини , които не могат да се измерят експериментално могат да се изчислят числено.

В основата на КЕ лежи определен модел на физическата система, чийто характеристики искаме да определим. Тези характеристики (или наблюдаеми величини) се получават след усредняване по пространството на състоянията на системата. Нека означим хамилтониана на модела на разглежданата система с Н, а определено състояние на системата с n-мерния вектор X = (X1, X2, ... Xn), където n е броя на степените на свобода. Множеството от възможни състояния ={X} образува т.нар. фазово пространство. Тогава наблюдаемата величина А ще се определи от всички възможни състояния на системата с помощта на т.нар. функция на разпределение f(H(X)):


(1)


К
ъдето Z е т.нар. статистически интеграл, т.е. А се получава чрез усредняване по статистически ансамбъл (по състояния). В КЕ много по-често се усреднява по траектория във фазовото пространство т.е. по време.

Хипотезата за ергодичност допуска, че <A>=A. Така усредняването по време за безкраен интервал се равнява на усредняването по състояния тъй като се предполага че за безкрайно време системата ще премине през всички възможни състояния. На практика очевидно е невъзможно времето да е безкрайно затова хипотезата за ергодичност е приблизително вярна за крайно време: <A>At

Има два основни метода за преместване на системата във фазовото пространство:

1) детерминистичен

2) вероятностен (стохастичен)

Идеята на детерминистичния метод е, че се използва собствената динамика на системата т.е. задават се уравненията на движение и се интегрират във времето. Наборът от частици на системата се описва с помощта на класическата механика т.е. при зададени начални координати XN(0) = {X1(0), X2(0), ... XN(0)} и моменти pN(0) = {p1(0), p2(0), ... pN(0)} трябва да намерим траекторията във фазовото пространство (XN(t), pN(t)). Най-популярният представител на детерминистичния подход е метода за компютърно симулиране наречен Молекулярна Динамика (МД).

Методът МД е въведен от Алдер и Вайнрайт през 1950 г. за изучаване на прости течности чрез модел на взаимодействие между твърди сфери. Изследван е фазовия преход течност-твърда фаза.

Следващият успех е през 1964 г. когато Раман прави симулация на течен аргон като използва реалистичен потенциал на взаимодействие (Ленард-Джоунс) в система от 864 атома. През 1974 се прави първата симулация на течна вода.

Първата симулация на протеин е през 1977 г. Днес всички белтъчни биополимери се моделират с помощта на МД. Други приложения са: рентгенова кристалография, неутронен магнитен резонанс и др. за определяне структурата на материалите.

При стохастичните методи подходът е друг. Ясно е, че трябва да се изчисляват различните конфигурации (състояния) на системата. Проблемът е как да придвижим системата от едно състояние в друго. Това става чрез вероятностна еволюция, която се осъществява чрез марковски процес, който е вероятностен аналог на собствената динамика при детерминистичния метод. Затова стохастичният метод може да моделира системи без собствена динамика. Най-популярният представител на стохастичния подход е метода Монте Карло (МК), при който симулацията се извършва с помощта на поредица от случайни числа.

За разлика от МД методите МК не се нуждаят от дефиниране на диференциални уравнения, описващи поведението на системата. Единственото изискване е физическата система да бъде описана с помощта на една или повече функции на разпределение на вероятността (ФРВ). След като знаем набора от ФРВ за дадена система можем да пресъздадем множество варианти на еволюция на системата с помощта на метода МК и след усредняване по състоянията да получим резултати за различни макровеличини описващи системата. Предимство на метода е, че може да се предскаже систематичната грешка и оттам да се оцени необходимия брой наблюдения за постигане на дадена грешка.

Приложенията на метода МК са многобройни и разнородни и обхващат широк кръг от проблеми, Някои от тези приложения са симулации на:


  • ядрени реакции

  • квантова хромодинамика

  • терапия на рак чрез облъчване

  • транспортен поток

  • звездни еволюции

  • предсказване на индекса Доу-Джонс

  • изследване на нефтени находища

  • проектиране на интегрални схеми и т.н.

Основни ограничения на компютърните симулации

  1. Първото ограничение е свързано с крайното време за

пресмятане еволюцията на физическата система, което води до грешка в изчисляване на средните наблюдаеми величини. Тази грешка се дължи на отклонение от хипотезата за ергодичност, която е точна само за безкрайно време. Например една типична стъпка във времето при симулация по метода МД е 10-14 секунди. Ако се направят около 105 интеграционни стъпки това означава, че проследяваме еволюцията на системата за около 10-11 секунди. Ограничението във времето се налага не само поради ресурсите на компютрите, но и поради крайния размер на модела, което ограничава броя на възможните състояния.

  1. Второто основно ограничение е свързано с крайния размер на

системата, което води до грешка тъй като термодинамически предел се достига за безкраен брой частици. Най често изучаваните системи са ограничени до 103 молекули, въпреки че броя може да достигне до 106 молекули.

  1. Алгоритмите за числено интегриране не са безкрайно точни:

винаги се търси компромис между точност и бързина на изчисленията. Например при МД колкото по-голяма е стъпката във времето толкова неточностите са по-големи. На практика системата ще следва траектория във фазовото пространство, различна от тази, която би следвала при безкрайно точни изчисления. Това разбира се оказва влияние върху точността на пресмятане на съответните физически величини.

  1. В методите МД междумолекулярните сили не са точно известни.

Намирането на подходящ модел за потенциал на взаимодействие на частиците в определена система е едно от предизвикателствата пред МД

  1. В методите МК основното ограничение е свързано с качествата на

използвания генератор на случайни числа, тъй като няма алгоритъм, който да гарантира безкрайно дълга поредица от случайни числа.

Компютърни алгоритми

Преди да може да се реши даден проблем на компютър трябва да се инструктира компютъра какви конкретни операции да извърши. Процесът включва две стъпки: Първо, трябва да се преобразува проблема, зададен обикновенно като уравнение, в набор от логически стъпки, които компютърът може да изпълни. Това е т.нар. числов компютърен алгоритъм. Второ, трябва да се информира компютъра как да проследи и изпълни тези стъпки. Това се реализира с помощта на някакъв компютърен език.

Щ
е разгледаме алгоритъма на една проста програма, описваща 1-D движение на една частица с маса m под действието на хармонична сила. Нека опишем движението на частицата с уравнението на Нютон: F=ma, където а е ускорението. Ако разделим времето на малки равни интервали  можем да определим средната скорост и средното ускорение за интервала [tn , tn+1 ]:





Най-простият алгоритъм за определяне на положението и скороста на частицата в момент tn+1 от известните стойности в предишния момент tn се получава след преобразуване на горните уравнения:

В
най-дясната част на последното уравнение сме приели m=1, а за хармоничната външна сила се изпълнява условието f(x)=-x. Очевидно ако знаем началните условия за скороста и координатата на частицата можем да определим тяхните стойности във всеки по-късен момент с помощта на показания рекурсивен алгоритъм наричан метод на Ойлер.

Този прост пример показва как се конструират повечето алгоритми. Първо, физическите уравнения се привеждат в дискретна форма т.е. в уравнения на разликите. След това желаните величини или решения се изразяват по рекурсивен начин т.е. стойностите в по-късен момент се изразяват чрез стойностите в предишен момент.

Логическите стъпки в един алгоритъм могат да бъдат последователни, паралелни или итеративни. Как да се използват свойствата на дадена задача при конструирането на бърз и точен алгоритъм е много важен момент в изчислителната наука. Вторият важен момент е да се напише чиста и добре организирана компютърна програма.

Зад. 1.1: Заредете файл с програмата написана с език С, фортран или JAVA. Kомпилирайте и стартирайте програмата, написана според горния алгоритъм. Резултатите за xn, vn и tn се извеждат на екрана след всеки MMAX итерации.


  • Модифицирайте програмата така, че да се въвеждат началните условия от клавиатурата и да се записват резултатите в три текстови файла за x, v и t.

  • Постройте графични зависимости x(t) и v(t) като използвате графичните възможности на друга програма, примерно Excel, MatLab или Origin.


Сумиране на редове

Една класическа числова задача е сумирането на ред за да се оцени функцията, която е разложена в ред. Ще разгледаме като пример степенния ред на експоненциалната функция.



Искаме да използваме горния ред за да изчислим exp(x) за х=0.1, 1, 10, 100 и 1000 с абсолютна грешка не надвишаваща 10-8. Как обаче да разберем кога да спрем сумирането? Лесно е да допуснем че грешката в сумирането се определя от последния член в реда. Тогава можем да приемем правилото че сумирането спира когато се изпълни условието:



където term е последния член в реда, а sum е натрупаната сума.



Зад. 1.2 : Напишете програма като използвате алгоритъм, в който всеки член се изчислява от предишния с просто умножаване по –х/n.

  • Нека се запише във файл таблица на стойностите на

exp(-x) когато x варира от 0 до 10 със стъпка 0.001.

  • Проверете програмата при големи стойности на х, примерно 50. Оценете грешката, като приемем че вградената функция дава точен резултат. Наблюдава се голяма грешка дължаща се на вадене на две големи, но близки по стойност числа.

  • Намалява ли грешката, ако пресметнем exp(x) и след това вземем реципрочната стойност 1/exp(x). В този случай нямаме вадене на големи числа, а само събиране.

Приложения

Приложение1: JAVA програма на задача 1.1

// An example of studying the motion of a particle in

// one dimension under an elastic force.
import java.lang.*;

public class Motion {

static final int n = 100000, j = 500;

public static void main(String argv[]) {

double x[] = new double[n+1];

double v[] = new double[n+1];


// Assign time step and initial position and velocity

double dt = 2*Math.PI/n;

x[0] = 0;

v[0] = 1;


// Calculate other position and velocity recursively

for (int i=0; i

x[i+1] = x[i]+v[i]*dt;

v[i+1] = v[i]-x[i]*dt;

}
// Output the result in every j time steps

double t = 0;

double jdt = j*dt;

for (int i=0; i<=n; i+=j) {

System.out.println(t +" " + x[i] + " " + v[i]);

t += jdt;

}

}

}


Приложение2: Псевдокод за сумиране на реда за експонента:

term=1, sum=1, eps=10^(-8)

do

term=-term*x/i



sum=sum+term

while abs(term/sum)>eps



end do
Каталог: ~tank -> NumericalMethods
NumericalMethods -> Лекция генератори на случайни числа. Поредица от случайни числа със
~tank -> Основи на езика fortran
~tank -> Програма От командната линия, след като сме влезли в директорията където е файла с фортран-код
~tank -> Програма за изчисляване на средна стойност
NumericalMethods -> Задача за числово решение с компютърна симулация. Решението на проблема за перколацията включва намирането на критична вероятност, р
NumericalMethods -> Лекция числово интегриране
NumericalMethods -> Лекция 10. Видове случайни разходки. Просто обхождане. Необратимо


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница