2014 dxdy logo

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

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




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

 
 
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 22:03 
Аватара пользователя
Глюки случаются.

 
 
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 22:49 
Ещё можно пометить все ячейки с определениями как ячейки инициализации, и M. при первом вычислении чего-нибудь спросит*, не вычислить ли сначала эти, если они ещё не были. Помечаются они так: нажимаете на самую внутреннюю скобку у ячейки с определениями (показана на скриншоте синим) и выбираете в меню Initialization cell (и если его потом открыть ещё раз, в этом пункте появится галочка).

Изображение

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

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

 
 
 
 Re: Дифференцирование в Mathematica
Сообщение04.07.2019, 23:59 
Аватара пользователя
Удивительно, то же самое теперь при попытке вывести тензор Римана. 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 
Аватара пользователя
misha.physics в сообщении #1403281 писал(а):
на видео нет
Уважаемый misha.physics, вы вообще изучали основы Wolfram Language перед тем, как приступить к решению своих задач? Вы читаете документацию? Дело в том, что Wolfram Language это язык программирования, его нельзя применять с бухты-барахты, а потом спрашивать у форумчан: «А чего он мне десять сообщений об ошибках выдаёт?»
Изучите для начала основы.

 
 
 
 Posted automatically
Сообщение05.07.2019, 00:49 
 i  Тема перемещена из форума «Околонаучный софт» в форум «Карантин»
по следующим причинам:

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

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

 
 
 
 Posted automatically
Сообщение05.07.2019, 10:29 
 i  Тема перемещена из форума «Карантин» в форум «Околонаучный софт»

 
 
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 11:16 
Аватара пользователя
Aritaborian, основы не изучал, только позавчера начал пользоваться программой. Просто исходя из примера на видео она мне показался интуитивно понятной. Я думал, что для не очень сложных задач (таких, как эта) мне будет достаточно той некоторой интуиции и логики, которую я получил при работе, например, с C++. И возвращаясь к конкретной задаче, мне кажется, что если я уже смог посчитать символы Кристоффеля, то найти компоненты тензора Риччи не будет проблемой, операции ведь аналогические: суммирование и частное дифференцирование. И ещё я когда-то пользовался Wolfram Alpha для дифференцирования и интегрирования, логика довольно понятна была. Но в общем, да, вы правы, я попытался сделать это сейчас наскоком, на лету.

 
 
 
 Re: Дифференцирование в Mathematica
Сообщение05.07.2019, 16:59 
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 
Аватара пользователя
arseniiv, да, мы сегодня с коллегой опытным путём пришли к заключению о квадратных скобках :-) Спасибо!

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

(Оффтоп)

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

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

(Шутка)

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

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


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