MATLAB LTC и все-все-все

    • MiSh
      25.06.2013
      06:20
      В MATLAB есть несколько возможностей по созданию GUI (графического интерфейса пользователя).

      Первый способ заключается в программировании отдельно каждого элемента. Т.е. описание окон, осей, кнопок и т.д. У каждого из этих элементов есть свойства по умолчанию, которые можно менять, а также те функции (Callback), которые вызываются при обращении к ним. Отдельно описываете эти Callbacks. 
      На выходе вы имеете m-файл интерфейса

      Второй способ - с помощью интерактивного инструмента GUIDE. Для его вызова так и надо написать в командной строке 

      Код
      >>guide

      В нём вы графически строите ваше интерфейс, при этом автоматически генерируется m-файл с комментариями. Там вам уже надо только прописать действия, происходящие при активации ваших элементов GUI.
      На выходе вы получаете 2 файла - fig-файл, с графической частью GUI и m-файл с программной частью.

      Небольшой пример по созданию GUI можно посмотреть в этом ролике на YouTube канале MATLABinRussia
    • MiSh
      01.04.2013
      09:08
      На минутку вернёмся к нашему сериалу.

      В далёкой-далёкой галактике…

      Понимая, что ему надо закончить обучение, Кодоход направляется обратно к магистру CUDA. Но тот ему отвечает, что больше научить его ничему не может. И что, только заборов Тёмный Кластер, он станет настоящим программистом.

      Но для этого надо научиться работать со специальным знанием, которое по традициям народов Севера ужато в одну фразу «одна программа – много данных». Как же разгадать эту головоломку?
      Т.к. ничего другого на ум Кодоходу не приходит, он решает воспользоваться уже проверенным средством – обучающими роликами с канала MATLABinRussia на YouTube. И таки находит тот материал, который искал.

      В нём он с удивлением встречает старого знакомца – функцию matlabpool. А рядом с ним - тот искомый функционал, который не только поможет запускать однотипную задачу на разных данных на его ПК, но и поможет сделать то же самое на кластере. Речь идёт, конечно же, про конструкцию spmd. Именно она реализует ту шаманскую фразу, о которой шла речь: «single program multiple data».

      С помощью этих подсказок он быстро обучается решать задачи с распределёнными данными на своём ноутбуке, и готов ко встрече с Тёмным Кластером.

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

      Галактика ликует, теперь она не погибнет, теперь у неё снова есть гениальный программист, умеющий пользоваться всеми возможностями параллельных вычислений в MATLAB.
    • MiSh
      22.03.2013
      14:52
      Задачи оптимизации возникают в инженерных задачах так же регулярно, как и вопрос в голове инженера – «как я могу сделать это лучше». Вот эти лучше (быстрее/ медленнее, больше/меньше и т.д.) и приводят нас к таким задачам.

      Основная проблема в таких случаях – сформулировать свои хотелки математическим языком. Т.е. записать так, чтобы машина могла понять ваш запрос.

      Для таких задач и предназначены 2 инструмента в арсенале продуктов MathWorks – Optimization Toolbox и Global Optimization Toolbox.

      В этом видео показан один из наглядных примеров, решаемых ежедневно диспетчерскими службами и авиакомпаниями. Потребление горючего самолётом, по большому счёту зависит от времени полёта, а оно зависит от того, по или против ветра летит самолёт. Можно использовать этот пример (ссылка на исходный код есть в описании видеоролика) для создания более сложной модели или просто как наглядный пример для понимания проблемы в целом.
    • MiSh
      22.03.2013
      09:14
      Многие задачи математической физики сводятся к решению одного из типов дифференциальных уравнений в частных производных, а именно краевым задачам эллиптического, параболического, гиперболического типа или задаче на собственные значения.

      Некоторые выделенные задачи имеют аналитическое решение. 
      Это, как правило, задачи с простой геометрией и точечными или однородными источниками. К таким задачам относятся, например, задача колебания струны, одномерное уравнение теплопроводности и другие одномерные задачи. Либо задачи, сводящиеся к одномерным, например, уравнение Лапласа на круге с точечным источником в центре.
      Однако наибольший практический интерес представляют пространственные двумерные и трёхмерные задачи. Стационарные и нестационарные.

      Существуют несколько методов решения таких задач, самые известные из которых - метод конечных разностей и метод конечных элементов. Именно второй из них реализован в Partial Differential Equation (PDE) Toolbox. С его помощью вы можете решать двумерные задачи в частных производных со временем, а также часть трёхмерных задач, сводящихся к 2-м пространственным измерениям, например осесимметричные или с равномерным распределением поля по третьему измерению.
      Т.к. PDE Toolbox основан на языке MATLAB, то и работать с  вашими моделями можно как из графического интерфейса, так и програмно, с помощью скриптов и функций.

      Небольшой пример работы в PDE Toolbox размещён на нашем YouTube-канале MATLABinRussia.
    • MiSh
      05.12.2012
      13:43
      В далёкой-далёкой галактике …

      Несмотря на победу над Dead Line-ом, наши герои всё ещё остаются в большой опасности. Чтобы выжить на далеко-далеко-галактическом рынке дикого капитализма приходится быть в тренде новейших информационных технологий.

      Чтобы не быть уничтоженными жестокими конкурентами, команда инженеров пытается срочно эвакуировать  свои MATLAB алгоритмы из ГОТовых шаблонных решений в более продвинутые, современные. Наш главный герой, Кодоход (CodeWalker) тоже принимает в этом живейшее участие. В одном из своих рейдов внутрь информационного поля галактики ему опять является в видениях старый программист и вещает, что ему может помочь магистр CUDA.

      Рассказав об этом своим друзьям, Кодоход направляется по специальному адресу, расположенному на youtube-канале MATLABinRussia, подсказанному старым мудрым программистом.

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

      В схватке он уже не тот несмышлёныш, которого мы видели в предыдущей части. Сила его велика. Ведь теперь он обладает не только навыками параллельного программирования на CPU, но ему также поддалась та малоизведанная для простых смертных сторона силы, которую даёт технология CUDA компании NVIDIA.

      Хотя ему не удаётся полностью победить своего врага – весь мир узнаёт, что паритет сил установлен, и агрессия теперь никому не сойдёт с рук.

      Попутно он узнаёт кто его отец, как его друзья спаслись из ожившего астероида и прочие мало-интересные вещи.

      Продолжение – следует.
    • MiSh
      30.11.2012
      11:12
      В далёкой-далёкой галактике…

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

      Постепенно его сила растёт,  алгоритмы становятся всё более разветвлёнными и тяжёлыми.

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

      И тут появляется нежданная проблема – Dead Line, который крушит всё на своём пути. Плюс их гениальный программист уходит навсегда в просторы Интернета и Фидо. Кажется, что теперь никто не может остановить надвигающийся Dead Line.

      Однако старый гениальный программист успел передать нашему инженеру тот рецепт, как успеть уложиться в срок. Решение – использовать параллельные вычисления. И являясь в грёзах нашему главному герою, старый программист объясняет, что и как следует делать. Чтобы материализовать эти знания в понятную простым смертным форму, он выкладывает их на youtube канал MATLABinRussia.

      У команды появляется надежда.

      Пока Dead Line надвигается, они лихорадочно штудируют полученные знания и переводят свои MATLAB алгоритмы в параллельные. В решающей схватке наш главный герой виртуозно применил те простые и эффективные средства, которые ему дал Parallel Computing Toolbox и успел спасти всю свою команду до назначенного срока.

      Dead Line был побеждён.

      Продолжение – следует.
    • MiSh
      01.11.2012
      12:04
      Иногда бывает так, что в своей работе хочется использовать уже написанный код. А не пытаться делать то же самое еще раз на Matlab.
      И неважно чей это код - свой или чужой, написанный давным-давно. 

      Представьте, внезапно вам приходит заказ из РосКосмоса - караул, дали денег на свой марсоход. Надо СРОЧНО, а даже лучше ВЧЕРА посчитать наилучшую орбиту с учётом влияния всех ближайших планет и даже наиболее крупных астероидов.

      Какой первый вопрос должен возникнуть у исполнителя? 
      Нет, не куда прятаться с выплаченным авансом.
      Правильный ответ - а ведь советские инженеры, учёные и конструкторы уже это всё когда-то считали. А не использовать ли результат их работы? Ведь хранятся же где-то все эти программы. Поднимаете архивы, добираетесь до нужной папки. И тут БАХ - а оно на Fortran, ведь это в те времена был наиболее продвинутый язык для научных расчётов. 

      Но вы-то продвинутый пользователь MATLAB. Вы-то знаете, что в него достаточно просто встроить библиотеки, написанные не только на C/C++, но и Fortran. 

      И вы, открываете справку MATLAB по нужному разделу. Для быстрого освежения знаний дополнительно открываете вашу домашнюю страницу в браузере - выбираете там видео, как использовать библиотеки Fortran в MATLAB на примере нахождения определенного интеграла методом Гаусса, взятого из библиотеки численного анализа ВЦ МГУ.
      И с высочайшей эффективностью пишете ваш расчет, делая вставки где-то из Fortran, где-то из C/C++. 

      Как итог - марсоход на Марсе, ваш гонорар - в банке (пятилитровой). У РосКосмоса - расширенные бюджеты, вы - завалены заказами от них на годы вперед. В-общем, всем хорошо. И только марсоход один-одинёшенек ищет своего троюродного брата из NASA, всё больше подозревая его виртуальность.
  • RSS подписка
    Архив материалов
    Январь 2017
    Пн Вт Ср Чт Пт Сб Вс
                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          
    Поиск