2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Софт для решения ДУЧП с большой размерностью переменной
Сообщение26.08.2015, 11:44 
Существует ли софт для решения дифференциального уравнения в частных производных:
$$\frac{\partial{U(t,x)}}{\partial{t}}=\sum_{i=1}^{n}{f_{i}(x) \cdot \frac{\partial{U(t,x)}}{\partial{x_{i}}}}$$
с начальными условиями:
$$U(0,x)=h(x)$$
где $x$ - вектор размера $n$, $n>400$.
Решение нужно не численное, от него нужно будет взять $m$, $0<m<n$ производных в заданной точке:
$\frac{\partial^{m}{U(t,x)}}{\partial{x_{i_{1}}}...\partial{x_{i_{m}}}} \bigg|_{(t,x)=(t_{1}, x_{1})}$
Возможно ли это сделать?

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 12:24 
Аватара пользователя
Не знаю как насчет софта, но Ваше уравнение сводится к оду
$\frac{dt}{-1}=\frac{dx_1}{f_1(x)}=...=\frac{dx_n}{f_n(x)}$
Решение учп будет складываться из интегральных кривых оду.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 15:26 
И эти ОДУ не обязаны быть разрешимыми в элементарных функциях. И как в каком виде предполагается получить результат не численно?

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 18:41 
Vince Diesel в сообщении #1048406 писал(а):
И эти ОДУ не обязаны быть разрешимыми в элементарных функциях. И как в каком виде предполагается получить результат не численно?

Мне нужно получить значение производной в точке $\frac{\partial^{m}{U(t,x)}}{\partial{x^{i_{1}}}...\partial{x^{i_{m}}}} \bigg|_{(t,x)=(t_{1}, x_{1})}$. Можно и численно. Кажется я начинаю понимать как это можно сделать (например, для случая $m=2$):
нужно численно посчитать значение функции в двух точках $U(t,x_{1}^{1},x_{1}^{2},...,x_{1}^{i},...,x_{1}^{j},...,x_{1}^{n})$ и $U(t,x_{1}^{1},x_{1}^{2},...,x_{1}^{i}+h,...,x_{1}^{j}+h,...,x_{1}^{n})$, тогда:
$\frac{\partial{U(t,x)}}{\partial{x_{i}}} \bigg|_{(t,x)=(t_{1}, x_{1})}=\frac{U(t,x_{1}^{1},x_{1}^{2},...,x_{1}^{i}+h,...,x_{1}^{j}+h,...,x_{1}^{n})-U(t,x_{1}^{1},x_{1}^{2},...,x_{1}^{i},...,x_{1}^{n})}{h^2}$
верно? Если да, то на чем лучше всего это считать?

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 21:25 
И с численным, похоже, проблемы. При такой размерности, если решать сетками, то, взяв хотя бы по 10 точек на координату, получается $10^{400}$ узлов.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 21:53 
B_u_b_a в сообщении #1048007 писал(а):
$n>400$.
Решение нужно не численное, от него нужно будет взять $m$, $0<m<n$ производных в заданной точке:
$\frac{\partial^{m}{U(t,x)}}{\partial{x_{i_{1}}}...\partial{x_{i_{m}}}} \bigg|_{(t,x)=(t_{1}, x_{1})}$
Возможно ли это сделать?

Для $m=400 $ количество таких производных будет чуть поменьше чем $400^{400} $. Уровень вычислительных технологий достигнутый человечеством пока, к сожалению, не готов, к вашим задачам :cry:

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 22:25 
dsge в сообщении #1048511 писал(а):
Для $m=400 $ количество таких производных будет чуть поменьше чем $400^{400} $. Уровень вычислительных технологий достигнутый человечеством пока, к сожалению, не готов, к вашим задачам :cry:

Мне надо не все производные считать, а конкретные, скажем, по первым десяти аргументам. Чисто ради интереса: а при каких n и m задача решается? И на чем считают? Matlab? Или какими-нибудь узкоспециализированными программами?

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 22:30 
B_u_b_a в сообщении #1048518 писал(а):
Мне надо не все производные считать, а конкретные, скажем, по первым десяти аргументам.

Это тоже очень много $(\sim 10^{10})$, если их просто держать в оперативной памяти.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение27.08.2015, 23:28 
dsge в сообщении #1048521 писал(а):
Это тоже очень много $(\sim 10^{10})$, если их просто держать в оперативной памяти.

Так мне производную в точке надо посчитать. Т.е. надо знать всего два значения: $U(t,x_{1}^{1},x_{1}^{2},...,x_{1}^{i},...,x_{1}^{j},...,x_{1}^{n})$ и $U(t,x_{1}^{1}+h,x_{1}^{2}+h,...,x_{1}^{10}+h,x_{1}^{11},...,x_{1}^{n})$ (для m=10).

Просто численно посчитать $U(t,x)$ в точке для каких n реально?

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение28.08.2015, 00:26 
B_u_b_a в сообщении #1048537 писал(а):
Так мне производную в точке надо посчитать.

Только одну смешанную производную в точке? Это можно где угодно посчитать, хоть в Экселе.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение28.08.2015, 09:52 
dsge в сообщении #1048560 писал(а):
Только одну смешанную производную в точке? Это можно где угодно посчитать, хоть в Экселе.

Т.е. численно решить дифференциальное уравнение в частных производных:
$$\frac{\partial{U(t,x)}}{\partial{t}}=\sum_{i=1}^{n}{f_{i}(x) \cdot \frac{\partial{U(t,x)}}{\partial{x_{i}}}}$$
с начальными условиями:
$$U(0,x)=h(x)$$
где $x$ - вектор размера $n$, $n>400$.
можно в Excel? Мне нужно знать значения $U(t,x)$ в двух точках. Можете посоветовать литературу, где простым языком написано как это сделать.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение28.08.2015, 20:23 
B_u_b_a в сообщении #1048666 писал(а):
Т.е. численно решить дифференциальное уравнение в частных производных:
$$\frac{\partial{U(t,x)}}{\partial{t}}=\sum_{i=1}^{n}{f_{i}(x) \cdot \frac{\partial{U(t,x)}}{\partial{x_{i}}}}$$
с начальными условиями:
$$U(0,x)=h(x)$$

Если вам надо численно решить дифференциальное уравнение в частных производных, то непонятно что значит
B_u_b_a в сообщении #1048666 писал(а):
Мне нужно знать значения $U(t,x)$ в двух точках

В каких 2-х точках?
B_u_b_a в сообщении #1048666 писал(а):
Можете посоветовать литературу, где простым языком написано как это сделать.

Любой учебник по численным методам и большинство учебников по уравнениям в частных производных (или мат.физики) - в Тихонове и Самарском кажется это есть.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение28.08.2015, 20:44 
dsge в сообщении #1048827 писал(а):
Если вам надо численно решить дифференциальное уравнение в частных производных, то непонятно что значит
B_u_b_a в сообщении #1048666

писал(а):
Мне нужно знать значения $U(t,x)$ в двух точках
В каких 2-х точках?

Дано:
дифференциальное уравнение в частных производных:
$$\frac{\partial{U(t,x)}}{\partial{t}}=\sum_{i=1}^{n}{f_{i}(x) \cdot \frac{\partial{U(t,x)}}{\partial{x_{i}}}}$$
с начальными условиями:
$$U(0,x)=h(x)$$
где $x$ - вектор размера $n$, $n>400$.
Требуется посчитать два числа: $U(t,x_{1}^{1},x_{1}^{2},...,x_{1}^{i},...,x_{1}^{j},...,x_{1}^{n})$ и $U(t,x_{1}^{1}+h,x_{1}^{2}+h,...,x_{1}^{10}+h,x_{1}^{11},...,x_{1}^{n})$
где $ x_{1}$ - $n$-мерная точка: $x_{1}=(x_{1}^{1},x_{1}^{2},...,x_{1}^{i},...,x_{1}^{j},...,x_{1}^{n})$.

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение28.08.2015, 21:08 
Вам надо решить уравнение для конкретного начального условия $x_0=0,$ $U(0,x_0)=h(x_0)$ до момента $t$ и после взять конкретную частную смешанную производную в точке $(t,x(t))$ ?

 
 
 
 Re: Софт для решения ДУЧП с большой размерностью переменной
Сообщение28.08.2015, 21:15 
Мне нужно знать ТОЛЬКО значение смешанной производной в точке $x_{1}$ в момент времени $t$. Для этого, как я понял, нужно посчитать два числа. Причем делать это нужно в каком-нибудь матпаке, так как $n$ велико.

 
 
 [ Сообщений: 18 ]  На страницу 1, 2  След.


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