Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Компилятор g++ выдает ошибку: "Версия этого файла несовместима с используемой версией Windows" https://www.cyberforum.ru/ cpp/ thread1707895.html
Когда запускаю программу с указателями, то виндовс ее сразу закрывает. Почему и как исправить? Все на скришоте
Проверка скорости кода. Обмен опытом C++
Вводные данные: - C++ стандарта 11 - gcc Работаю над ускорением кода для работы со строками. К примеру, сравниваю между собой скорость работы: -strncpy -strcpy -через ассемблер movs -memcpy
C++ Реализации преобразований с геометрической фигурой (сферой) https://www.cyberforum.ru/ cpp/ thread1707065.html
Товарищи подскажите кто чем сможет. Надо написать программу, позволяющую делать различные преобразования со сферой (перемещение, сжатие, растяжение, изменение цвета, освещение и т. д.); управление действиями задается с клавиатуры. Буду благодарен
C++ Можно ли просчитать дистанцию между переменными в map? values.push_back(necessaryCoor) - - - - Вектор содержит только координаты points.push_back(newPoints) - - - Вектор содержит только айди для каждой координаты fullMap.insert(pair, vector>({ newPoints}, { necessaryCoor })); - -- -map содержит и айди и координату for (auto it = fullMap.begin(); it != fullMap.end(); it++) { for (auto it1 = fullMap.begin(); it1 != fullMap.end();... https://www.cyberforum.ru/ cpp/ thread1706692.html
Редактирование DLL C++
Подскажите, как безопасно извлечь проверку ключа по хосту в этом тексте? От куда по куда (мне чтобы в Инжекторе работало после этого))? Если понадобится, добавлю больше текста... - тут код ...
C++ Задача Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получить 651. Помогите пожалуйста, написать код для RAD studio x5 на С++. завтра уже сдавать. Ничего не понимаю((( https://www.cyberforum.ru/ cpp/ thread1704744.html
C++ Код стандартных библиотечных фунций Подскажите, пожалуйста, где можно посмотреть исходный код функций стандартных библиотек, например, math.h, string.h? Не интерфейс функций, а именно реализацию . https://www.cyberforum.ru/ cpp/ thread1704734.html C++ Ссылка на неразрешенный внешний символ
Уважаемые форумчане, помогите пожалуйста разобраться с данной проблемой: Ошибка LNK2019 ссылка на неразрешенный внешний символ "public: __thiscall Functions<int>::Functions<int>(void)" (??0?$Functions@H@@QAE@XZ) в функции _main Task02 C:\Users\Developer\Desktop\4 семестр\c++\Задача02\Task02\Task02\Task02.obj Ошибка LNK2019 ссылка на неразрешенный внешний символ "public: __thiscall...
C++ Перевод кода из matlab с++ https://www.cyberforum.ru/ cpp/ thread1703339.html
Добрый вечер помогите перевести код из matlab в с++ пожалуйста
C++ Проектирование информационной системы автосервиса Диплом на С++ Здравствуйте, тема моего диплома Проектирование информационной системы автосервиса, с использованием С++. Что мне делать дальше, после того как я сделала БД, в какой СУБД ее делать, и что делать дальше, мне не нужно подробно описывать, просто хотя бы скажите направление куда мне двигаться. И если скажите иди к научному, я сама работаю, а на все мои сообщения он отвечает что занят и попозже все... https://www.cyberforum.ru/ cpp/ thread1703078.html
C++ Подскажите формат даты/времени
Здравствуйте! Подскажите пожалуйста формат даты/времени 29.03.2016 13:32:49 - "f036ad939589d101" 29.03.2016 22:26:35 - "80b88b24e089d101" 30.03.2016 .... - "908c4b644e8ad101" Что это за форат и как его переводить в дату/время? Спасибо!
C++ ID для каждой координаты https://www.cyberforum.ru/ cpp/ thread1701887.html
Здравствуйте, подскажите пожалуйста, как можно решить следующую проблему. У меня есть список координат (234) , мне нужно узнать какой координат используется ( используя id) и посчитать сколько раз каждое айди использовалось. Допустим , я читаю первый документ с координатами и второй , содержащий 234 координаты . Я захожу в первый цикл , беру первую координату из первого файла , захожу во...
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 1
0

Метод Монте-Карло для систем многих частиц - C++ - Ответ 9006997

11.04.2016, 13:06. Показов 1270. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача реализовать метод Монте-Карло для систем многих частиц.

На данный момент сделан расчет взаимодействия двух частиц, а также граничные условия.

Далее надо 1) реализовать схему начальной расстановки частиц(кристалл или случайное распределение), проверить корректность работы для различного числа частиц; 2) Реализовать схему Метрополиса. Подобрать амплитуду случайной силы.

Проблема в том, что нет особого понимания, так как с физикой не сталкивалась со школы, а как это запрограммировать вообще не знаю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <iomanip>
 
using namespace std;
 
const int ntot = 20000;
FILE *out = stdout;
 
 
class MD
{
    private:
        const int N = 5; // количество частиц
        double dt;
    double rn[N][3], L[3], L2[3];
        double r[N][3];
        double f[N][3]; // координаты, сила
        double utot; 
        double E_kin;
    public:
        double v[N][3];
 
        MD()
        {
            N = 5;
            dt = 0.0005;
            utot = 0;
            E_kin = 0;
 
            for(int i = 0; i < 3; i++)
            {
                L[i] = 3;
                L2[i] = L[i] / 2;
            }
 
            out = fopen("result.csv","ab+");
        }
 
 
    void nearest_image(); // приведение к основной ячейке
        void ClearForces();// f = 0;
        void ReadCoordinates(); // чтение координат из файла
        void CalcForces(); //Расчет сил
        void EqMotion();
        void KineticEnergy();
        void SaveState(int n);
};
 
void MD::ClearForces()
{
 
    for (int i = 0; i < N; i ++)
        for (int j = 0; j < 3; j ++)
            f[i][j] =0;
}
 
void MD::ReadCoordinates()
{
    FILE *a = stdout;
    a = fopen("coordinates.csv","r");
 
    for (int i = 0; i < N; i ++)
        for (int j = 0; j < 3; j ++)
            fscanf(a,"%lf;", &r[i][j]);
 
    fclose(a);
}
 
void MD::CalcForces() //Расчет сил
{
 
 
    double rij[3]; // расстояние между частицами
    double Force = 0; // сила
    double r1, u1, u6, u12;
    utot = 0;
 
    for(int i = 1; i < 5; i ++)
        for(int j = 0; j < i; j ++)
        {
            double r2 = 0;
            for(int k=0; k<3; k++)
            {
                rij[k] = rn[i][k] - rn[j][k];
                if(rij[k] > L2[k]) rij[k] -= L[k];
                else if(rij[k] < -L2[k]) rij[k] += L[k];
                r2 += rij[k] * rij[k];
            }
 
            r1 = sqrt(r2);
            u1 = r1*r1*r1;
            u6 = u1*u1;
            u12 = u6*u6;
            utot += 4.*(1./u12 - 1./u6); // расчет потенциала
            Force = -24.*(u6-2.)/(u12 *r1*r1);
 
            for(int k = 0; k < 3; k ++)
            {
                f[i][k] += Force * rij[k];
                f[j][k] -= Force * rij[k];
            }
        }
}
 
void MD::EqMotion() //Решение ур.движения
{
    for(int i = 0; i < 5; i ++)
        for(int k = 0; k < 3; k ++)
        {
            v[i][k] += f[i][k] * dt;
            r[i][k] += v[i][k] * dt;
        }
}
 
void MD::KineticEnergy()
{
    double velocity = 0;
 
    for(int i = 0; i < 5; i ++)
        for(int j = 0; j < 3; j ++)
            velocity += v[i][j]*v[i][j];
 
        E_kin = velocity/2.;
}
 
void MD::nearest_image()
{
    for(int i=0; i<5; i++)
        for(int k=0; k<3; k++)
        {
            if(r[i][k] > 0)
                rn[i][k] = fmod(r[i][k] + L2[k], L[k]) - L2[k];
            else
                rn[i][k] = fmod(r[i][k] - L2[k], L[k]) + L2[k];
        }
 
}
 
void MD::SaveState(int n) // сохранение результата
{
    fprintf(out, "%.3lf; %.10lf; %.10lf; %.10lf;\n", n*dt, utot, E_kin, utot+E_kin);
}
 
int main()
{
 
    MD A;
    for (int i = 0; i < 5; i ++)
        for (int j = 0; j < 3; j ++)
            A.v[i][j] = 0;
 
    A.ReadCoordinates();
    
 
    for(int n = 0; n < ntot; n ++)
    {
    A.nearest_image();
        A.ClearForces();
        A.CalcForces();
        A.KineticEnergy();
        A.EqMotion();
 
        if(n%10 == 0) A.SaveState(n);
    }
    fclose(out);
    return 0;
}
Файл с координатами https://yadi.sk/i/8m7Sl2e3qodH3

Вернуться к обсуждению:
Метод Монте-Карло для систем многих частиц C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2016, 13:06
Готовые ответы и решения:

Метод Монте-Карло для решение систем линейных алгебраических уравнений
Здравствуйте форумчане, у меня, наверное, проблема больше с математикой. Попытался написать...

Моделирование систем массового обслуживания метод монте карло
привет всем.это моделирование систем массового обслуживания метод монте карло можете подсказать...

Метод Монте-Карло для вычисления площади фигуры
Суть такова, вычислить площадь фигуры, ограниченной кривыми x*y=a^2, x+y=5*a/2, где a вводится...

Метод Монте-Карло для двойного интеграла с заданной точностью
Здравствуйте, нужно вычислить интеграл I = \int\limits_{ - 1}^1 {\int\limits_{ - 1 + \left| x...

0
11.04.2016, 13:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2016, 13:06
Помогаю со студенческими работами здесь

Метод Монте-Карло для решения тройного интеграла (не сходится решение)
Здравствуйте. Только начинаю изучать данный метод. Не могу до конца его понять. Полазив на...

Метод Монте-Карло
С помощью метода Монте-Карло найдите оценку объема шара, центр которой совпадает с началом...

Метод Монте-Карло
Помогите написать программу на С++. Из множества 1, 2, ..., n, случайным образом извлекается с...

Метод Монте-Карло
Помогите написать программу для вычисления определенного интеграла методом Монте-Карло.

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru