Comments 63
Наблюдал падения на версиях ниже 6-й беты при выделении памяти больше, чем задавалось в переменной стека (stacksize), и скорее всего глюки были связаны именно с ограниченным стеком, ну и java-машина что-то накручивала. В 6-й, пока, не замечал, так как память не переполнял — она теперь неограничена по-сути.
Т.к. я тащусь от больших матриц, а вот Scilab (по крайней мере раньше) — нет
Ну или хотя бы 15к
Еще такой вопрос. А как там с поддержкой распараллеливания и CUDA?
Версия
2.0-0
Авторы
Cedric Delamarre Vincent LEJEUNE, Allan CORNET, Cedric DELAMARRE
Описание
This module provides GPU computing capabilities to Scilab. It uses an implementation of BLAS (cuBLAS) and FFT (cuFFT) through gpuAdd, gpuMult, gpuFFT and other functions. This module uses essentially Cuda but some functions, as gpuBuild, have been created for build and use kernels developed with OpenCL or Cuda. Binary versions have been built with Cuda 4.0. If you need the OpenCL version of this module, please send an email to contact@scilab-enterprises.com.
Смотри также
• http://atoms.scilab.org/toolboxes/sciGPGPU/2.0 • http://forge.scilab.org/index.php/p/sciCuda/
Дата выпуска
2013-09-11
Размер загр
Почти во всех ВУЗах её используют, т.к. сейчас строже стали относится к обучению на софте, который студент технически может только спиратить откуда-нибудь. Сам застал переписывание методичек с Matlab на Scilab, и с MS Word на Libreoffice.
Scilab отличный инструмент и не падает постоянно, как у комментатора выше. Хотя некоторые падения могу подтвердить: в коде можно допустить ошибки, из-за который отвалится скрипт вместе со всей средой выполнения.
Сам застал переписывание методичек с Matlab на Scilab
А почему не octave, у него вроде язык совместим с matlab,
т.е. методички и переписывать бы не пришлось?
Ещё я пытался воспользоваться программой Microsoft DreamSpark, оплаченной ВУЗом. Тогда я потратил 3 месяца на поиск ответственных людей, но в итоге мне выдали несколько ключей, чтобы я отстал, хотя по документации, которую я даже распечатал и носил по кабинетам, должны были просто подтвердить мою учётную запись в админском аккаунте.
Отсутствие анонимных функций утомляет после Matlab, а так весьма достойная свободная альтернатива.
Стал читать статью именно в ожидании увидеть интересное решение для интегрирования уравнения свободного падения. Не увидел. Хотя для этой задачи зависимость ускорения свободного падения от высоты даст значимый вклад.
Не стоит, решая задачу по механике, заново формулировать 4-ю аксиому динамики (принцип независимости действия сил). На основе этой аксиомы и так уже есть уравнение движения точки, гласящее, что
произведение массы на ускорение есть векторная сумма действующих на точку сил. Так что Ваши выкладки, связанные с вычислением ускорения силы сопротивления воздуха избыточны. Достаточно написать
и проецировать уравнение на вертикальную ось, сведя все выкладки к делению обоих частей получившегося уравнения на массу.
К тому же слово «замедление» это инженерная вульгарность. Ускорение величина векторная и знака у него нет. Знак есть у проекции, но проекция это не есть ускорение в механическом смысле
Производная всё-таки имеет знак, а замедление относится все-таки скорее к знаку второй производной, а не к вектору как таковому
Производная всё-таки имеет знак, а замедление относится все-таки скорее к знаку второй производной, а не к вектору как таковому
Производная от вектора по времени — тоже вектор, и никакого знака у ней нет. Не путайте понятие векторной величины и её проекции, производной от вектора, и производной от его проекции
А если что-то и посчитать, то будут ли основания верить полученному решению?
по h от -inf до 0, то получится:
, где G — гравитационная постоянная, M — масса планеты, r — радиус планеты.
Вот вам и максимальная скорость, при падении из максимально удаленной от планеты точки, до ее поверхности без учета сопротивления атмосферы и релятивистских эффектов.
r — расстояние до притягивающего центра. За ноль потенциальной энергии принимаем положение точки на «бесконечности». В отсутствии сил сопротивления сохраняется полная механическая энергия точки, тогда
где v — скорость точки при падении на поверхность; R — радиус небесного тела. Получаем искомую скорость
и это внезапно — вторая космическая скорость на поверхности небесного тела
при учёте ОТО всё сложнее
Не то что сложнее — ужас как намного сложнее. ОТО вообще одна из самых забористых теорий, после теории суперструн)
Однако есть вполне четкие представления о том, как будет вести себя тело, падающее в черную дыру, что описано в популярной форме у Кауфмана в книге «Космические рубежи теории относительности».
Для удаленного наблюдателя тело, падающее в черную дыру будет разгонятся до середины пути, а затем замедляться, пока не замрет в вечной неподвижности на расстоянии
от центра дыры. Это расстояние называется радиусом Шварцильда и его сходство с нерелятивистской формулой 2-й космической скорости лишь забавное совпадение.
В системе отсчета тела падающего в дыру движение будет происходить и после пересечения сферы Шварцильда со скоростью не превышающей скорость света. Как-то так
при бесконечном r ваша П будет стремиться к нулю в пределе.
Так и должно быть. Удобным способом представления потенциальной энергии является выбор нулевого её уровня на бесконечности. Все положения ближе характеризуются отрицательной потенциальной энергией.
И вообще, за нулевой уровень потенциальной энергии можно выбрать любую эквипотенциальную поверхность в пространстве где данное поле рассматривается
Вот вам и максимальная скорость, при падении из максимально удаленной от планеты
kasyachitche, посмотрите внимательно на Вашу скорость, у Вас ошибка, Вы потеряли двойку и квадратный корень
Учитывая, что
или, окончательно
Можно ли попросить развернуть описание, а еще лучше — сравнение с MatLAB? Как там дела с программированием, какие парадигмы поддерживаются, в какой степени? В комментариях писали, что в Scilab нет анонимных функций, так может есть еще какие-нибудь инструменты, облегчающие написание больших программ? Что там с графиками? Насколько широк функционал работы с ними? Какой подход к этой работе?
Насколько удобна и быстра работа с файлами?
А то написали что инструмент мощный, но вот вам пример использования его как калькулятора.
Простейший решатель таких уравнений можно написать самому за несколько минут.
Кстати да. Системы уравнений подобного вида у нас решали все студенты до единого, численно, на Алголе-60, примерно в 1975 году. И по объему кода получалось не сильно больше того, что тут приведено. И решалось это на машине с 16 килословами памяти. Неужто не на чем как-то продемонстрировать прогресс, достигнутый с 1975 года? )))
Раз тема интересна сообществу, в ближайшее время сделаю более развернутую статью, где постараюсь ответить на поставленные вопросы по Scilab-у и показать что-нибудь более прогрессивное.
Тема хорошая. С octave бы еще сравнить, хотя бы немножко.
Думается, что универсальный питон c библиотеками ни в чём сейчас не уступает специализированным пакетам. Но за счёт универсальности имеет существенное преимущество
Почему демонстрация мощной системы ведется на примере решения ДУ? Простейший решатель таких уравнений можно написать самому за несколько минут.
А то написали что инструмент мощный, но вот вам пример использования его как калькулятора.
Что называется «ткнули пальцем в небо».
Теория диффур — один из сложнейших разделов математики. Достаточно навскидку гуглануть, чтобы понять объем статей и монографий, посвященных именно численным методам решения ОДУ, особенно жестких ОДУ, какие например встречаются в динамике поезда.
Так что простейший решатель может и пишется за пять минут, а вот задача численного решения ОДУ и инструментарий, используемый для этого мне лично калькуляторами не кажутся
Формула для сопротивления у вас какая-то сомнительная. Дело в том, что Cx, он обычно экспериментально измеряется, по крайней мере для тел такой сложной формы, как человек, и на таких скоростях (дозвуковых и околозвуковых). Вы, кстати, где его взяли, и какой величины?
А площадь S — это никакая не максимальная, а просто характерная площадь (т.е. грубо говоря, если это Cx для тонкой и плоской пластинки, то это будет площать пластинки, а если цилиндр — то например площать сечения цилиндра.
Ну и кстати — разница в величине g на 30 километрах может и 1%, но если ее влияние проинтегрировать по времени падения — то может получиться совсем не мало.
Cx = 0.35 взял отсюда как для «парашютиста, падающего плашмя, с разведенными в стороны ногами и руками».
S = 1 взял, что называется, «на глаз»
Если учесть, что герой статьи менял угол наклона тела в процессе полета (вначале падал плашмя, затем под более острым углом), Cx и S по-хорошему должны быть функциями времени полета. Но экспериментальных данных такого рода нет, а придумывать исходя из одного видео затея сомнительная, будет еще хуже.
Ну да, формула норм, а вот циферки да, сильно сомнительны. Впрочем аэродинамика тела человека это штука сложная.
Для S=1 хорошо бы еще понимать, в каких единицах. Квадратный метр?
Cx и S по-хорошему должны быть функциями
Не совсем так. S это характерная площадь, она не меняется для одного тела. А зависит это все от угла атаки (сопротивление и подъемная сила). График-то несложно получить, и он достаточно простой обычно — но появится еще одна переменная, этот самый угол атаки, которым парашютист может управлять (и еще диф. уравнения).
Ну и кстати — разница в величине g на 30 километрах может и 1%, но если ее влияние проинтегрировать по времени падения — то может получиться совсем не мало.
Вы не совсем правы — разница будет несущественна. Выполним её оценку
За начало отсчета примем уровень поверхности Земли. Сопротивление атмосферы пренебрегаем. Ускорение свободного падения зависит от высоты над поверхностью так
Высота прыжка 39 км, радиус Земли — 6378 км, так что можно линеаризовать зависимость ускорения от высоты, разложив вышеприведенную функцию в ряд Тейлора, отбросив малые второго порядка
Учитывая что
ускорение силы тяжести на поверхности, получим
Составим уравнение движения и проинтегрируем его, считая, что скорость парашютиста v(h) = 0, где h — высота прыжка
Здесь — квадрат скорости, что получилась бы, считай мы g постоянным. Та что относительное отклонение скорости при этом допущении составит
Ошибка по скорости составляет 0,3 %. Так что допущение постоянства g вполне справедливо
Возможно ли получить аналитическое решение с помощью Scilab?
К комментарию выше: для этого больше подойдут системы компьютерной алгебры (Maxima и т.д.).
На мой взгляд, плюсы: 1) мало весит, ~ 150 МБ; 2) для меня понятная справка на смеси English+ местами русский, более понятная чем запутанные портянки матлаб; 3) сижу на Linux + Scilab — полёт нормальный, рабочий вариант Win+Scilab тоже пашет на меня; 4) в Симулинк не работал и не открывал ни разу, работаю в XCos, считаю полёт нормальный, всё моделится ( тут пример с файлом); 5) есть навески-атомы в онлайн-каталоге Atoms, из них пользую вейвлеты, ЦОС, всё остальное для меня есть в Scilab; 6) разрежённые матрицы — люблю, ценю, благодарю разрабов, мегавещь.
P.S. Диплом писал в Scilab (черновик). Зимой парой-тройкой строк написал для себя связку Scilab+CalculiX для параметрического формирования конечно-элементной сетки требуемого объёкта, все операции с ФС работают без напряга с моей стороны, чтение-запись данных идёт, машинка крутится… Работа с кодом выглядит примерно так
.
Инструменты отладки вроде как изменились к лучшему в v6.0.0, но пока не юзал. Симуляция обратного маятника выглядит примерно так:
P.P.S. Для интересующихся есть примеры, в главном окне выбрать Справка-> Примеры. Там можете сравнить функционал матлаба.
Scilab в свободном падении