2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 22:02 
Аватара пользователя


17/03/17
683
Львів
Aritaborian, спасибо, работает. Правда, в первый раз после этой команды меня почему-то выбросило из программы.

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 22:03 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Глюки случаются.

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 22:49 
Заслуженный участник


27/04/09
28128
Ещё можно пометить все ячейки с определениями как ячейки инициализации, и M. при первом вычислении чего-нибудь спросит*, не вычислить ли сначала эти, если они ещё не были. Помечаются они так: нажимаете на самую внутреннюю скобку у ячейки с определениями (показана на скриншоте синим) и выбираете в меню Initialization cell (и если его потом открыть ещё раз, в этом пункте появится галочка).

Изображение

Если определения разбросаны по нескольким ячейкам, можно их выделить сначала все, нажимая на те внутренние скобы левой кнопкой с Ctrl, а потом уже идти в меню.

* Может быть, есть возможность делать это и безусловно, но я не искал.

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 23:59 
Аватара пользователя


17/03/17
683
Львів
Удивительно, то же самое теперь при попытке вывести тензор Римана. Quit Kerner не помогает. Формулу уже сам набирал по аналогии (на видео нет), но по-моему правильно.

Код:
riemann[a_, b_, c_, d_] :=
riemann[a, b, c, d] =
  Simplify[D[christ[[a, b, d]], coord[[c]]] -
    D[christ[[a, b, c]], coord[[d]]] + \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(n = 1\), \(3\)]\(christ[\([\)\(a,
       c, n\)\(]\)] christ[\([\)\(n, b, d\)\(]\)]\)\) - \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(n = 1\), \(3\)]\(christ[\([\)\(a,
       d, n\)\(]\)] christ[\([\)\(n, b, c\)\(]\)]\)\)]


после выполнения

Код:
riemann[1, 2, 1, 2]


снова получаю ошибку

Код:
Part::partd : Part specification...is longer than depth of object.

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 00:30 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
misha.physics в сообщении #1403281 писал(а):
на видео нет
Уважаемый misha.physics, вы вообще изучали основы Wolfram Language перед тем, как приступить к решению своих задач? Вы читаете документацию? Дело в том, что Wolfram Language это язык программирования, его нельзя применять с бухты-барахты, а потом спрашивать у форумчан: «А чего он мне десять сообщений об ошибках выдаёт?»
Изучите для начала основы.

 Профиль  
                  
 
 Posted automatically
Сообщение05.07.2019, 00:49 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Околонаучный софт» в форум «Карантин»
по следующим причинам:

- вставьте во все сообщения код как текст (с использованием соответствующего тэга и не как картинку).

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 Профиль  
                  
 
 Posted automatically
Сообщение05.07.2019, 10:29 
Заслуженный участник


09/05/12
25179
 i  Тема перемещена из форума «Карантин» в форум «Околонаучный софт»

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 11:16 
Аватара пользователя


17/03/17
683
Львів
Aritaborian, основы не изучал, только позавчера начал пользоваться программой. Просто исходя из примера на видео она мне показался интуитивно понятной. Я думал, что для не очень сложных задач (таких, как эта) мне будет достаточно той некоторой интуиции и логики, которую я получил при работе, например, с C++. И возвращаясь к конкретной задаче, мне кажется, что если я уже смог посчитать символы Кристоффеля, то найти компоненты тензора Риччи не будет проблемой, операции ведь аналогические: суммирование и частное дифференцирование. И ещё я когда-то пользовался Wolfram Alpha для дифференцирования и интегрирования, логика довольно понятна была. Но в общем, да, вы правы, я попытался сделать это сейчас наскоком, на лету.

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 16:59 
Заслуженный участник


27/04/09
28128
misha.physics
В данном случае ошибка простая. Вы ведь определили christ как функцию от трёх аргументов, а не массив с тремя измерениями, вот об этом и пишет. Нужно будет просто поменять скобки [[ ]] на одинарные [ ].

У вас там уже в определении есть код для мемоизации результатов (christ[a, b, c] =), потому нужды генерировать массив и им пользоваться нет, но вообще вы могли бы получить по этой функции и массив моим кодом Table[christ[a, b, c], {a, 3}, {b, 3}, {c, 3}] (и назвать его как-то). Например если потребуются компоненты какого-то промежуточного тензора, который не хочется никак называть, этот вариант пригодится.

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 17:30 
Аватара пользователя


17/03/17
683
Львів
arseniiv, да, мы сегодня с коллегой опытным путём пришли к заключению о квадратных скобках :-) Спасибо!

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 18:24 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли

(Оффтоп)

Убейте меня кто-нибудь уже. Люди изучают самый на свете суперзадокументированный софт методом «ткнём сюда прутиком, оно задёргается, подожжём вот с этой стороны, оно зарычит». Дайте мне это развидеть.
Не, я и впредь готов давать советы...

 Профиль  
                  
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 18:40 
Аватара пользователя


17/03/17
683
Львів

(Шутка)

Это всё необоснованная экстраполяция нашей естествоиспытательности.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group