Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Wolfram Mathematica | Математика

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wolfram Mathematica 14

Загрузка и поиск "лекарств"в "Варезнике"


 
Здесь обсуждаем вопросы языка Mathematica и программы, которая ИМХО лучше других выполняет свою задачу и, кроме, того очень точно соответствует своему названию, хотя там не забыли и про физиков и химиков и всех остальных:)

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 16:00 01-12-2003 | Исправлено: zAlAn711, 18:21 10-01-2024
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
popkov

Цитата:
Ещё можно выделить рисунок и нажать "сохранить как..." - там будут опции для контроля качества.  

мне нужно автоматом  
ps: да, в 7.01 сохраняет уже без проблем

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:03 25-04-2009 | Исправлено: Cheery, 04:43 26-04-2009
Griefin

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Функция Export тоже позволяет задавать параметры изображений.

Всего записей: 759 | Зарегистр. 19-07-2003 | Отправлено: 10:24 26-04-2009
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ещё один баг интегрирования в Mathematica 7:
 
In[1]:= Integrate[(1)/(z^2 + b^2 + a^2 - 2 z b Sin[\[Theta]] - 2 a b Cos[\[Theta]])^(1/2), {\[Theta], 0, 2 \[Pi]},  
 Assumptions -> {a > 0, b > 0, z > 0}]
 
Out[1]= 0
 
Легко убедиться, что функция в подкоренном выражении неотрицательна, а значит, подинтегральное выражение всегда больше нуля:
 
In[2]:= Reduce[ z^2 + b^2 + a^2 - 2 z b Sin[\[Theta]] - 2 a b Cos[\[Theta]] < 0, {\[Theta]}]
 
Out[2]= False
 
Версия 5.2 этого бага не содержит и возвращает исходный интеграл без изменений, нерешённым.

Всего записей: 1833 | Зарегистр. 22-03-2003 | Отправлено: 09:48 23-05-2009 | Исправлено: popkov, 09:49 23-05-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто нить скажет - чего он красным так выделяет?
Не ошибка - считает, но все же..
   
 

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:24 19-06-2009
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery,
это указатель того, что функции нужен ещё аргумент(ы).
 
Видимо, глючит. У меня на Ваших примерах всё нормально.

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 10:47 20-06-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TomasVercetti
да 7 как то странно на больших кодах ведет себя.
у меня есть большой Module
так вот в нем есть циклы.. и когда просто добавляешь где то внутри цикла, скажем, Print["test"];
то она то хочет точку с запятой перед описанием цикла
,{j,0,10}
то не хочет.. глупости какие то..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:54 20-06-2009
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А что такое в FindRoot DampingFactor? (Решаю систему уравнений методом секущих.)

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 15:07 28-06-2009
egorovshura

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь работать с матрицами которые содержат внутри себя элементы созданные с помощью функции Subscript:
 
создаю  
 
tens = Table[Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]
 
присваиваю значения
 
Table[Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}] = Table[1, {i,  
1, 2}, {j, 1, 2}, {k, 1, 3}]
 
Возник вопрос как очистить переменные Subscript[t, i, j, k] с помощью Clear?
 
Пробовал различные вызова с использованием Hold, но ничего не сработало.
 

Всего записей: 371 | Зарегистр. 07-04-2006 | Отправлено: 14:39 05-08-2009
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Table[Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}] = Table[1, {i,  
1, 2}, {j, 1, 2}, {k, 1, 3}]  
А эта запись не вызывает ошибки? Что Вы хотите получить?
В любом случае, это Вы не значение t[i,j,k] присваиваете, а создаёте новый список.
«Присвоить значение» элементу списка в функциональном программировании = применить правило (rule) к элементу списка (или другую функцию). Например:
tens = Table[Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}];
tens/. t -> 1
присвоит всем t значения, равные единице.
 
2. Clear[t, i, j, k]
Хотя в Вашей записи все эти переменные являются локальными для конкретных функций, и, по идее, должны быть глобально «свободны».

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 21:55 05-08-2009 | Исправлено: TomasVercetti, 22:05 05-08-2009
egorovshura

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TomasVercetti
 
Да, действительно так как я написал получается ошибка. На самом деле я делал следующее:
 
выполнил tens = Table[Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]
 
получил на выходе
 
{{{Subscript[t, 1, 1, 1], Subscript[t, 1, 1, 2], Subscript[t, 1, 1,  
   3]}, {Subscript[t, 1, 2, 1], Subscript[t, 1, 2, 2], Subscript[t, 1,
    2, 3]}}, {{Subscript[t, 2, 1, 1], Subscript[t, 2, 1, 2],  
   Subscript[t, 2, 1, 3]}, {Subscript[t, 2, 2, 1], Subscript[t, 2, 2,  
   2], Subscript[t, 2, 2, 3]}}}
 
скопировал этот вывод и добавил присваивание
 
{{{Subscript[t, 1, 1, 1], Subscript[t, 1, 1, 2], Subscript[t, 1, 1,  
    3]}, {Subscript[t, 1, 2, 1], Subscript[t, 1, 2, 2], Subscript[t,  
    1, 2, 3]}}, {{Subscript[t, 2, 1, 1], Subscript[t, 2, 1, 2],  
    Subscript[t, 2, 1, 3]}, {Subscript[t, 2, 2, 1], Subscript[t, 2, 2,
     2], Subscript[t, 2, 2, 3]}}}  
=  Table[1, {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]
 
Таким образом всем элементам Subscript[t, i, j, k] присвоились единички. Это видно если ввести выражение Subscript[t, i, j, k] с конкретными значениями i, j, k.
 
После этого при вводе tens я получаю список содержащий все единички.
 
Теперь я хотел бы сделать нечто вроде Clear[tens], но так чтобы очистить значения всех элементов списка Subscript[t, i, j, k].
 
 
Добавлено:
Эту проблему можно было бы решить если бы я смог создать такой список:
 
{Hold[Subscript[t, 1, 1, 1]], Hold[Subscript[t, 1, 1, 2]],  
 Hold[Subscript[t, 1, 1, 3]], Hold[Subscript[t, 1, 2, 1]],  
 Hold[Subscript[t, 1, 2, 2]], Hold[Subscript[t, 1, 2, 3]],  
 Hold[Subscript[t, 2, 1, 1]], Hold[Subscript[t, 2, 1, 2]],  
 Hold[Subscript[t, 2, 1, 3]], Hold[Subscript[t, 2, 2, 1]],  
 Hold[Subscript[t, 2, 2, 2]], Hold[Subscript[t, 2, 2, 3]]}
 
Только создать такой список программным путем у меня не получается. Я могу сделать так
 
Flatten[Table[
  Subscript[Hold[t], i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]]
 
и получаю на выходе
 
{Subscript[Hold[t], 1, 1, 1], Subscript[Hold[t], 1, 1, 2], Subscript[
 Hold[t], 1, 1, 3], Subscript[Hold[t], 1, 2, 1], Subscript[
 Hold[t], 1, 2, 2], Subscript[Hold[t], 1, 2, 3], Subscript[
 Hold[t], 2, 1, 1], Subscript[Hold[t], 2, 1, 2], Subscript[
 Hold[t], 2, 1, 3], Subscript[Hold[t], 2, 2, 1], Subscript[
 Hold[t], 2, 2, 2], Subscript[Hold[t], 2, 2, 3]}
 
что близко к желаемому, но не совсем то.
 
Добавлено:
Только теперь сообразил, что  
 
Clear[Subscript[t, 1, 1, 1]]  
 
не работает. Странно, почему?
 
Работает вариант  
 
Subscript[t, 1, 1, 1] = .
 
который тоже подходит так как сбрасывает значение переменной Subscript[t, 1, 1, 1], чего я и добиваюсь для всех Subscript[t, i, j, k].
 
Вообще получается так что Subscript[t, i, j, k] это и непеременная вовсе а нечто более сложное.

Всего записей: 371 | Зарегистр. 07-04-2006 | Отправлено: 00:37 06-08-2009
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
egorovshura,
 
Функция Clear очищает определение/значение конкретного символа (symbol). Например, символом является Subscript; но Clear[Subscript] очистит все определённые ранее Subscript'ы. А присваиваемые Вами значения присваиваются глобальному символу Subscript и хранятся внутри именно как Subscript[t,1,1,1], что не является отдельным символом. Поэтому значения можно очистить с помощью Unset[Subscript[t, 1, 1, 1]] (эквивалент точки).  
 
В конечном счёте всё упрётся в то, когда Вы хотите трактовать t[i,j,k] как отдельный символ, а когда — как набор переменных. И насколько Вам всё это нужно автоматизировать. Одно из возможных решений, в той же теме были и другие предложения. Насколько я помню, в своё время были пакеты, которые позволяли трактовать Subscript как один символ, за исключением итераций, когда индекс трактуется как переменная; к сожалению, названия не помню.
 
 
In:
Map[Hold,  
 Flatten[Table[
   Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]]]
 
Out:
{Hold[Subscript[t, 1, 1, 1]], Hold[Subscript[t, 1, 1, 2]],  
 Hold[Subscript[t, 1, 1, 3]], Hold[Subscript[t, 1, 2, 1]],  
 Hold[Subscript[t, 1, 2, 2]], Hold[Subscript[t, 1, 2, 3]],  
 Hold[Subscript[t, 2, 1, 1]], Hold[Subscript[t, 2, 1, 2]],  
 Hold[Subscript[t, 2, 1, 3]], Hold[Subscript[t, 2, 2, 1]],  
 Hold[Subscript[t, 2, 2, 2]], Hold[Subscript[t, 2, 2, 3]]}
 
Удачи!

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 15:26 06-08-2009
egorovshura

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TomasVercetti,
 
Вариант
 
Map[Hold,  
 Flatten[Table[  
   Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]]]  
 
не работает, так как Subscript[t, i, j, k] буду заменены на значения, т.е. единички
 
{Hold[1], Hold[1], Hold[1], Hold[1], Hold[1], Hold[1], Hold[1],  
 Hold[1], Hold[1], Hold[1], Hold[1], Hold[1]}
 
Вариант который у меня сработал такой
 
 
Flatten[
  Table[
   a[t, i, j, k],
   {i, 1, 2}, {j, 1, 2}, {k, 1, 3}
   ]
  ] /. a[x__] -> Defer[Subscript[x]]
 
Только мне кажется это слишком сложным. Наверное я что-то перемудрил.

Всего записей: 371 | Зарегистр. 07-04-2006 | Отправлено: 17:26 06-08-2009
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
egorovshura,
 
a[x__] -> Defer[Subscript[x]] заменяет выражение другим выражением, не вычисляя последнее. Глобальные переменные Subscript[t,i,j,k] по-прежнему будут равны единице.
 
Но ведь точно также с самого начала можно делать:
tens = Flatten[
  Table[Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]];
tens /. Subscript[t, x__] -> 1;
tens /. x__ ->  
  Flatten[Table[
    Subscript[t, i, j, k], {i, 1, 2}, {j, 1, 2}, {k, 1, 3}]];
...
И глобально Subscript[t, i, j, k] будет свободны.
 
Так что, всё зависит от того, что и как Вы будете делать. : )

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 18:44 06-08-2009 | Исправлено: TomasVercetti, 18:49 06-08-2009
egorovshura

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TomasVercetti
 
Да, думаю так можно было. Просто изначально я хотел получить систему для удобной работы с матрицами (точнее тензорами) составленными из элементов с субскриптами. Писать уравнения и получать решения для этих элементов. Т.е. хотелось писать в естественном виде, например так:
 
tens1 . tens2 == tens3
 
Думаю проще было бы работать и индексами, т.е. t[i, j, k] вместо субскриптов. но субскрипты приятнее выглядят.

Всего записей: 371 | Зарегистр. 07-04-2006 | Отправлено: 21:24 06-08-2009
TomasVercetti

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А есть ли встроенные средства, чтобы в Plot на каждую из строящихся кривых поместить надпись? Наподобие как ContourLabels в ContourPlot, только текст свой.

Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 18:18 04-09-2009 | Исправлено: TomasVercetti, 18:19 04-09-2009
rakis

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Необходимо решить задачу математического моделирования:
Сколько шариков диаметром 30мм вместится в 1м куб.
 
Вопрос: Можно ли эту задачу решить с помощью Mathematica?

Всего записей: 379 | Зарегистр. 17-01-2006 | Отправлено: 00:48 06-09-2009 | Исправлено: rakis, 00:49 06-09-2009
KChernov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rakis

Цитата:
Сколько шариков диаметром 30мм вместится в 1м куб.
 
Вопрос: Можно ли эту задачу решить с помощью Mathematica?

В буквальной постановке вроде нет (по крайней мере без доп программирования).
Но если немного подумать над задачей, то и без субжа решается (в уме).

Всего записей: 2471 | Зарегистр. 20-04-2004 | Отправлено: 07:26 06-09-2009
rakis

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KChernov
Цитата:
В буквальной постановке вроде нет (по крайней мере без доп программирования).  

Ну, то что надо программировать меня не пугает.
 

Цитата:
Но если немного подумать над задачей, то и без субжа решается (в уме).

а вот тут возможны варианты (укладывать шары строго один над одним, допускать смещение в выемки, образованные нижним слоем и т.п.)

Всего записей: 379 | Зарегистр. 17-01-2006 | Отправлено: 12:58 06-09-2009 | Исправлено: rakis, 12:58 06-09-2009
lisnake



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Сколько шариков диаметром 30мм вместится в 1м куб.  
 
Вопрос: Можно ли эту задачу решить с помощью Mathematica?

Эк вы хватили это же очень сложная и до сих пор до конца не решенная задача о плотной упаковке шаров. Впрочем, гексагональная упаковка, я думаю, вам подойдет, это наилучшая из известных конфигураций. Читать здесь — http://en.wikipedia.org/wiki/Sphere_packing

Всего записей: 9 | Зарегистр. 04-12-2005 | Отправлено: 16:28 06-09-2009 | Исправлено: lisnake, 16:32 06-09-2009
rakis

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lisnake
Цитата:
Эк вы хватили это же очень сложная и до сих пор до конца не решенная задача о плотной упаковке шаров

О как... Не знал. Спасибо за наводку.

Всего записей: 379 | Зарегистр. 17-01-2006 | Отправлено: 23:08 06-09-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Wolfram Mathematica | Математика


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru