Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузись в удивительный мир настоящей рыбалки! Лови живую рыбу в естественных водоёмах, открой для себя новые рыбные места и поймай свой долгожданный трофей!

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
0
DELETED
Серия Изучаем Wolfram Language

Изучаем Wolfram Language - 4. Синтаксис⁠⁠

1 год назад

В предыдущей статье мы рассмотрели интерфейс Wolfram Mathematica. В этой мы наконец-то приступим к изучению самого языка. Начнем с основного синтаксиса. Под синтаксисом я буду подразумевать только допустимые конструкции языка, но не сами функции.

По сравнению со многими популярными языками программирования, дизайн Wolfram Language довольно необычен. Современные популярные языки, например, Python, C# или JavaScript имеют синтаксис, состоящий из ключевых слов и определений в строгом порядке. Например, в Python для создания функции я должен написать вот такой код:

def my_func(x, y):

  return x + y

В качестве элементов самого синтаксиса здесь выступают ключевые слова def и return, специальные знаки разделяющие или группирующие код "()", ", " и ":". А так же оператор сложения и свои собственные имена - их я могу придумать любые (только если они не заняты ключевыми словами). Я всего лишь использовал одну из многих существующих конструкций в Python, а элементов синтаксиса получилось не так уж и мало. Причем считается, что относительно других языков программирования, Python имеет довольно лаконичный синтаксис.

А теперь рассмотрим основные синтаксические конструкции WL.

Комментарии

Они пишутся в колючих скобочках (**) и могут быть в любом месте кода и занимать больше одной строки:

1 + 1 (* слева 2 *) + 3 + 4 (* еще комментарий *)

Создание переменной:

x = 1

Создать несколько переменных, как это работает в Python, нельзя:

x, y, z = 1, 2, 3

Но можно присвоить значения списку переменных:

{x, y, z} = {1, 2, 3}

Важно, чтобы количество элементов в списках слева и справа совпадало. WL - язык с динамической типизацией - это значит, что переменные могут хранить значения любых типов и изменять значения не обращая внимания на тип.

x = 1

x = "string"

Очистка значения переменной

Есть несколько способов:

x =.

Или

Clear[x]

Или

ClearAll[x]

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

Арифметика

Поддерживаются все типичные арифметические операции:

  • Сложение

1 + 1 (* => 2 *)

  • Вычитание

1 - 2 (* => -1 *)

  • Умножение

3 * 5 (* => 15 *)

  • Деление

9 / 3 (* => 3 *)

  • Возведение в степень

3^2 (* => 9 *)

Сравнение

Сравнивать можно все что угодно. Например числа:

1 == 2 (* => False *)

Строки:

"string1" == "String1" (* => False *)

Списки:

{1, 2, 3} == {1, 2, 3} (* => True *)

Числа разных типов:

1.0 == 1 (* => True *)

На последнем примере остановимся подробнее. Мы сравнили целое и действительное число и вернулось True. Что нужно сделать чтобы убедиться, что типы не совпадают? Сравнить при помощи точного сравнения:

1.0 === 1 (* => False *)

Отличие точного сравнения от обычного еще в том, что при обычном сравнении, если WL не знает как сравнить два выражения - то возвращается ввод:

x+y == a+b (* => x+y == a+b *)

Точное сравнение всегда гарантирует результат True или False.

x+y === a+b (* => False *)

И еще несколько операций сравнения:

1 < 2 == True (*меньше*)

2 <= 2 == True (*меньше или равно*)

3 > 2 == True (*больше*)

3 >= 3 == True (*больше или равно*)

4 != 5 == True (*неравно*)

a != b == a != b (*неравно возвращает ввод если выражения несравнимы*)

a =!= b == False (*строгое неравно*)

Логические операции

Логическое "и" при помощи &&:

x = 5

x < 6 && x > 1 == True

Логическое "или" при помощи ||:

x = 10

x > 11 || x <= 10 == True

Логическое отрицание при помощи "!":

x = 15

!(x < 5 || x > 20) == True

Создание функций:

Самая важная часть синтаксиса - это создание собственных функций:

myFunc[x_, y_] := x + y

Обратите внимание, что для функции используется знак ":=" - это отложенное присваивание. Оно означает, что код справа не выполняется во время создания определения, но выполняется во время вызова функции.

Естественно определение функции можно очистить:

ClearAll[myFunc]

Но в WL функции можно очень легко перегружать на различных типах аргументов. То есть я могу создать дополнительное определение:

myFunc[x_] := myFunc[x, 1]

И очистить только одно из определений тоже можно:

myFunc[x_] =.

Clear или ClearAll такой способ не поддерживают, а очищают все определения.

На этом на сегодня все, в следующей части мы рассмотрим основные структуры данных и способы работы с ними, всем спасибо за внимание!

Показать полностью
[моё] Wolfram Language Программирование Образование Длиннопост Текст
0
DELETED
Серия Изучаем Wolfram Language

Изучаем Wolfram Language - 3. Интерфейс Mathematica⁠⁠

1 год назад

После того как вы запустите Mathematica (WM), вам отобразится пустой блокнот, который похож на обычный блокнот в Windows (notepad.exe). В предыдущих версиях интерфейс этого блокнота был еще более минималистичным и не содержал дополнительных кнопок под основным меню. Приступим к его изучению!

Основное меню

Меню File

Меню File

Собственно как и в любом другом приложении рабочего стола у нас есть список пунктов меню с выпадающими списками. Они все довольно стандартны и в основном не требуют разъяснений. Но я отмечу несколько важных пунктов, которые в среднем используются чаще всего:

  • File > New > (Notebook, Presenter Notebook, Package/Script > (Wolfram Language Package))

Создает новый файл - блокнот, презентацию, пакет или скрипт

  • File > Save

Сохраняет текущий файл

  • Edit > Preferences

Открывает настройки

  • Format > ..

Меню посвящённое форматированию стилей документа, ячеек и текста

  • Evaluation > (Evaluate Notebook, Evaluate Initialization Cells, Quit Kernel)

Выполняет весь код блокнота, только ячейки инициализации, останавливает ядро

Дополнительное меню

На нем можно не останавливаться подробно. Единственное, что важно знать - это то, что в большинстве случаев кнопки дополнительного меню дублируют те команды основного меню, которые статистически чаще всего используются: форматирование, выполнение кода и вставка объектов в документ.

Ячейки

То, что мы рассмотрели выше - относится к интерфейсу приложения рабочего стола. Эта часть интерфейса может различаться в разных версиях или на разных платформах. Например, в Wolfram Cloud основное меню выглядит по другому. Но самой важной частью UI в Mathematica являются ячейки. Ячейка - это основной блок, из которого состоят документы Wolfram Mathematica. Те, кто знаком с такими приложениями как Jupyter или Observablehq хорошо представляют что такое ячейки. Кроме того, пока я пишу этот текст - я также пользуюсь похожими блоками в редакторе Pikabu.

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

Выпадающее меню с выбором типа новой ячейки

Выпадающее меню с выбором типа новой ячейки

Я выберу первый пункт "Wolrfam Language Input". Тогда создастся ячейка с типом по умолчанию:

Курсор в новой ячейке

Курсор в новой ячейке

Я создал ячейку. Справа ячейка отделена квадратной скобочкой. На скриншоте видно, что слева в данный момент располагается курсор. Теперь можно ввести любой текст:

1+1

1+1

Так как я создал input-ячейку, то она является исполняемой, т.е. Mathematica предполагает, что в таких ячейках располагается код, который можно выполнить. Для этого достаточно нажать сочетание клавиш SHIFT + ENTER.

Результат выполнения SHIFT + ENTER

Результат выполнения SHIFT + ENTER

Что мы видим в интерфейсе:

  1. input - код переданный на вход

  2. ouput - результат выполнения кода, т.е. вывод

  3. номер в истории ввода

  4. номера в истории вывода

Мы создали ячейку ввода и нажали SHIFT + ENTER. Но что произошло далее? Приложение считало из ячейки код, т.е. 1 + 1. Отправило его в интерпретатор WL. Интерпретатор вычислил этот код и вернул результат (2) в интерфейс. Интерфейс получил результат, напечатал новую ячейку с типом output и вставил в нее результат выполнения. Т.е. вывод - это тоже такая же ячейка, которая создается после выполнения ячейки с кодом.

Есть еще один способ создания ячейки ввода. Нужно кликнуть мышью в любое пустое пространство - после всех ячеек или между двумя существующими ячейками и начать набирать любой текст. Тогда точно так же создается ячейка с типом input.

Какие еще есть типы ячеек? Во-первых, они подразделяются на текстовые и исполняемые. Всего существует два типа исполняемых ячеек - input и code. Текстовых ячеек намного больше. Все типы доступные в текущем документе можно найти в выпадающем меню:

При выборе любого типа в документ в текущее положение курсора вставляется пустая ячейка. Типов довольно много, но есть несколько самых популярных. Они вставляются при помощи сочетания клавиш ALT + 1, 2, ..9:

  • ALT + 1 - заголовок

  • ALT + 2 - подзаголовок

  • ALT + 3 - раздел

  • ALT + 4 - секция

  • ALT + 5 - подсекция

  • ALT + 6 - подсекция второго уровня

  • ALT + 7 - текст

  • ALT + 8 - код

  • ALT + 9 - инпут

Как выглядят ячейки разного типа в документе

Как выглядят ячейки разного типа в документе

Первые семь ячеек на скриншоте выше текстовые, т.е. в них можно создавать форматированный текст. 8 и 9 ячейки интерпретируются как код. Разница между ними в стиле, а так же в том, что ячейки с типом code (ALT + 8) интерпретируются как ячейки инициализации.

Любую ячейку можно выделить и вызвать контекстное меню. Для этого нужно кликнуть по скобочке справа правой кнопкой мыши:

В контекстном меню можно изменить форматирование, сменить тип, выполнить, удалить и т.д.

Еще один важный момент. На скриншотам выше видно, что ячейки сгруппированы. Если ячейка имеет тип "заголовок", все для остальных типов она будет "главной" в группе. Группу ячеек можно выполнить целиком или удалить целиком. А так же вырезать, копировать и другие действия. Иерархия чем-то похожа на теги h1/h2/h3/.. в HTML.

Собственно, на этом на сегодня все. Мы коротко рассмотрели основное меню и познакомились с ячейками и их типами. Но это далеко не все. В дальнейшем мы постепенно узнаем и другие особенности UI. Но пока что нужно знать самое важное:

  1. Mathmetica - это "подсмотрщик документов" со своим специфичным интерфейсом

  2. Все документы независимо от подсмотрщика состоят из ячеек и только из них. Ячейки могут группироваться и иметь различные типы.

  3. Есть два основных вида ячеек - исполняемые и текстовые

Показать полностью 8
[моё] Wolfram Language Программирование Длиннопост Образование
1
DELETED
Серия Изучаем Wolfram Language

Изучаем Wolfram Language - 2. Первая программа⁠⁠

1 год назад

После того как среда исполнения установлена (либо пройдена регистрация в Wolfram Cloud) можно приступить к написанию кода. Если вы установили Wolfram Engine при помощи пакетного менеджера и активировали его, то необходимо выполнить в командной строке команду:

wolfamscript

После чего запустится сессия ядра Wolfram Language. Эта сессия работает в режиме REPL. Так же как cmd.exe, PowerShell или Bash. Т.е. мы вводим команду, а ядро выполняет ее и печатает результат. После запуска интерпретатора можно выполнить какой-то простой код. По традиции напишем:

Print["Hello, World!"]

В результате напечатается переданная строка. Ниже пример результата Windows Terminal:

После запуска утилиты wolframscript напечаталась текущая версия языка и ядра

После запуска утилиты wolframscript напечаталась текущая версия языка и ядра

Для завершения сессии и возврата в PowerShell (в моем случае) можно выполнить команду:

Exit[]

Все тоже самое в интерфейсе Mathematica:

Здесь можно внимательно рассмотреть интерфейс

Здесь можно внимательно рассмотреть интерфейс

И в Wolfram Cloud:

Если что это браузер Vivaldi

Если что это браузер Vivaldi

В принципе первая традиционная для каждого языка программирования программа готова. В следующей части мы подробнее познакомимся с интерфейсом Mathematica.

Всем спасибо за внимание!

Показать полностью 3
[моё] Wolfram Language Программирование Длиннопост
3
DELETED
Серия Изучаем Wolfram Language

Изучаем Wolfram Language - 1. Установка⁠⁠

1 год назад

В этой серии постов мы будем изучать такой язык программирования как Wolfram Language (WL). Но прежде чем начать, установить среду исполнения. На данный момент существует несколько различных вариантов работы с языком.

  • Wolfram Mathmatica

Это приложение для рабочего стола. Лучший вариант для разработки на WL, но с одним очень большим недостатком - она стоит денег, а учитывая курс доллара - она стоит достаточно приличных денег. Но выход есть - найти на торрентах кейген для Wolfram Mathematica и следовать инструкции по активации. Получить актуальную версию установщика пробной версии приложения можно на официальном сайте компании разработчика - Wolfram Research Inc. Затем эту версию можно либо купить, либо использовать кейген, либо переактивировать триал с помощью новой учетной записи.

  • Wolfram Cloud

Имеет бесплатный тариф - не требует установки и просто работает в браузере. Нужно просто пройти интуитивно понятный процесс регистрации с почтой, но без смс. Лучший вариант для начинающих. Облачная версия умеет почти все тоже самое, что и десктопная за исключением тех функций, которые связаны с железом и операционной системой. Просто потому что код исполняется на серверах компании Wolfram Research.

  • Wolfram Engine

Бесплатная (но с ограниченной лицензией) версия ядра Wolfram Language. Из плюсов - она реально бесплатная. Из минусов - запрещено использовать в коммерческих целях и запускать больше определенного количества экземпляров. Требует привязку в электронной почте. Соответственно при необходимости установить на несколько компьютеров - можно завести несколько электронных почт и привязать лицензию к ним. В чем отличие от предыдущих вариантов: устанавливает ядро локально, но без пользовательского интерфейса. Т.е. это утилита командной строки, которая запускается из консоли. Огромный плюс в том, что можно установить при помощи пакетного менеджера:

brew cask install wolfram-engine

winget install WolframEngine

Или запустить как docker-контейнер

docker pull wolframresearch/wolframengine

Независимо от того, какой вариант вы выбрали - везде будет один и тот же язык программирования и в браузере, и в Mathemetica, и в терминале.

А на этом сегодня все, всем спасибо за внимание встретимся в следующем коротком посте, где я расскажу как написать и выполнить свой первый код.

Всем спасибо за внимание!

Показать полностью
[моё] Wolfram Language Программирование Текст
2
27
DELETED
Наука | Научпоп

Конференция по Wolfram Language в Санкт-Петербурге⁠⁠

2 года назад

Приглашаю всех желающих на конференцию по языку программирования Wolfram! Конференция будет проходить 1 и 2 июня 2023 года в Санкт-Петербургском Государственном Морском Техническом Университете по адресу ул. Лоцманская, д. 10-14. Участие полностью бесплатное! В том числе вы можете зарегистрироваться в качестве докладчика.

Что такое Wolfram Language

Если вы не знаете что такое Wolfram Language, то это высокоуровневый функциональный язык программирования, отличительной особенностью которого является огромная стандартная библиотека, содержащая функции для всех областей науки. Его использует большое количество ученых, исследователей и инженеров по всему миру в физике, математике, химии, экономике, геологии, астрономии и т.д. На Wolfram Language написано ядро Wolfram Alpha, которая имеет куда более широкое распространение и известность, но далеко не все знают каким образом устроено ядро Альфы внутри. Кроме того, после стремительного роста популярности ChatGPT, многие узнали про этот язык, так как одним из первых плагинов для ChatGPT стал именно Wolfram.

Что будет на конференции

На конференции будут доклады по физике плазмы, математическому моделированию, электродинамике, геофизике, психофизиологии, кораблестроению, программированию и другим темам. Туда приедут ученые, преподаватели и просто фанаты WL из различных городов чтобы рассказать о своих проектах. Единственный условием является то, что все доклады должны демонстрировать то, как докладчик эффективно, оригинально или полезно применяет в язык Wolfram в своей работе.

Организация

До 2019 года похожую конференцию в России организовывала компания Wolfram Research (разработчик WL, Mathematica, Wolfram Alpha, System Modeler). Затем после ввода ограничений в связи с COVID19 данная конференция больше не проводилась. Это мероприятие было единственным такого рода в России, которые посвящено технологиям Wolfram. И вот спустя 4 года мой друг Пётр Тенишев (администратор группы в vk, посвященной Wolfram Mathematica) и я (редактор в этой группе) решили возродить эту конференцию собственными силами. Почему мы решили это сделать? Мы считаем, что WL крайне недооценен и непопулярен. О нем хорошо знают в академической среде, но язык уже давно используется не только для решения уравнений, а для самых различных задач. И ради популяризации языка программирования мы и решили организовать конференцию куда пригласили ученых и инженеров.

Как стать участником

Все очень просто. Конференция бесплатная. Выступить на ней и посетить ее могут все желающие. К докладам, как я писал выше, только одно условие - вы должны рассказать о том как применяете язык Wolfram. Для того чтобы стать участником достаточно связаться со мной или с Петром одним из доступных способов (контакты будут ниже) либо заполнить форму регистрации по вот этой ссылке: https://wolfr.am/1d0y29RKG (форму регистрации я написал на WL и опубликовал в облаке)

Контакты

Пётр Тенишев
ВК: https://vk.com/id618500
Почта: tenishefff@yandex.ru

Кирилл Белов
ВК: https://vk.com/kirillbelovtest
Почта: kirillbelovtest@gmail.com
Телеграм: https://t.me/kirillbelovtest

Все новости касающиеся конференции так же в группе в ВК: https://vk.com/wolframmathematica. Здесь же вы можете задать любой вопрос по WL, так как это суть этой группы - в ответах на вопросы со стены.

Всем спасибо за внимание! Буду рад видеть вас на конференции и благодарен за распространение этого поста, каждый лайк и комментарий!

Показать полностью
[моё] Wolfram Language Wolfram Программирование Наука Математика Физика Геология Конференция Текст
0
0
allozovsky
allozovsky
Лига математиков

Найдите 10 отличий⁠⁠

5 лет назад

Пост носит развлекательно–познавательный характер.

Все вычисления выполнены в Wolfram Mathematica 12.0.


Теперь к "вечным" вопросам "Является ли 0 натуральным числом?" (и да, и нет) и "Действительно ли 0.(9) равно 1?" (да) можно добавить вопрос "Чему равен ∛(–8)?" (и сослаться на авторитет Wolfram Mathematica).

P.S. Если кому-то понадобится:

√ ∛ ∜ 𝕚 ·

x⁰¹²³⁴⁵⁶⁷⁸˙⁹⁺⁻ᐟ˙ᐧ⁼⁾⁽ⁿ

x₀₁₂₃₄₅₆₇₈₉₊₋₌₎₍

Показать полностью 2
[моё] Математика Wolfram Language Корни Комплексные числа
34
0
kritMo3ga
kritMo3ga

Распознаватель объектов на фото The Wolfram Language Image Identification Project⁠⁠

10 лет назад
"Стивен Вольфрам открыл доступ к сервису интеллектуального распознавания изображений" https://www.imageidentify.com/
Распознаватель объектов на фото The Wolfram Language  Image Identification Project
Wolfram Language Лампа Распознавание Не мое Образовач
15
6
zombizombizombi
zombizombizombi

Поиск наилучшей последовательности просмотра списка 250 лучших фильмов с помощью языка Wolfram Language (Mathematica)⁠⁠

10 лет назад
Не мог не поделиться, это вправду очень интересное исследование. Подробнее можно узнать на Хабрахабре /post/245735/
Поиск наилучшей последовательности просмотра списка 250 лучших фильмов с помощью языка Wolfram Language (Mathematica)
Показать полностью 1
Wolfram Language 250 лучших фильмов Исследования Длиннопост
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии