Octave как пользоваться
Перейти к содержимому

Octave как пользоваться

  • автор:

Octave. Установка пакетов

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие

  • Программирование
  • Литературное программирование
  • Emacs. Устаревшая библиотека cl
  • git submodules
  • Виды комментариев в Emacs Lisp

© 2006—2023 Dmitry S. Kulyabov. This work is licensed under CC BY 4.0

Published with Wowchemy — the free, open source website builder that empowers creators.

Программирование на Octave/Основы Octave

Цель этого урока — кратко рассказать об основах Octave, а также показать вам, что многое из описанного вы уже знаете. Если вы что-то забудете или вам понадобится подробная информация о какой-либо функции или команде, просто наберите:

help command

в командной оболочке Octave. команда — это название команды или функции в Octave, справка по которой вам требуется. Стоит предупредить, что описания могут зачастую быть техническими и содержать много жаргонных выражений.

Заметка:
Если у вас возникли проблемы с запуском Octave, сайты NCLab и Verbosus позволяют вам работать с Octave в облаке. Обе системы бесплатны для использования.

  • 1 Запуск Octave
  • 2 Ввод команд
  • 3 Построение графиков
    • 3.1 Задание
    • 6.1 Предупреждение

    Запуск Octave править

    Чтобы запустить Octave введите octave в окне терминала. Вы должны будете увидеть, что-то похожее на текст ниже, разница зависит от версии, которую вы установили:

    GNU Octave, version 3.6.4 Copyright (C) 2013 John W. Eaton and others. This is free software; see the source code for copying conditions. There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'. Additional information about Octave is available at http://www.octave.org. Please contribute if you find this software useful. For more information, visit http://www.octave.org/get-involved.html Report bugs to (but first, please read http://www.octave.org/bugs.html to learn how to write a helpful report). octave:1>

    Ввод команд править

    Последняя строка снизу является приглашением командной строки Octave и, так же как и командная строка в Linux, это место где вы вводите команды Octave. Чтобы выполнить простейшие арифметические операции, используйте + (сложение), — (вычитание), * (умножение), / (деление) и ^ (возведение в степень).

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

    • Тригонометрические функции: sin , cos , tan
    • Обратные тригонометрические функции: asin , acos , atan
    • Натуральный и десятичный логарифмы: log , log10
    • Экспонента: exp
    • Модуль числа: abs

    Также определены различные константы: pi, e, мнимая единица (i или j), inf (бесконечность), NaN (Неопределенность. Результат неопределенных операций, например inf/inf).

    Вот несколько примеров операций и соответствующих им команд Octave.

    octave:1> 2 + 3 ans = 5
    octave:2> log10(100)/log10(10) ans = 2
    octave:3> floor((1+tan(1.2)) / 1.2) ans = 2
    octave:4> sqrt(3^2 + 4^2) ans = 5
    octave:5> e^(i*pi) ans = -1.0000e+00 + 1.2246e-16i octave:6> # Comment: From Euler's famous formula octave:6> # extremely close to the correct value of -1

    Несколько вещей, на которые стоит обратить внимание:

    • В Octave требуются круглые скобки вокруг аргументов у функции (так, например log(10) — нормально, а вот (log 10) неверно).
    • Любые пробелы до или после арифметических операций не являются обязательными, но допускаются
    • Не все функции в Octave имеют очевидные имена (например, sqrt — извлечение корня). Не паникуйте. Вы узнаете о них по ходу обучения.

    Построение графиков править

    Сейчас вы научитесь строить следующие графики с помощью Octave.

    Figure 1 Figure 2
    Figure 3 Figure 4

    Форма 1 (Figure 1) содержащая в себе плоскость была сгенерирована с помощью команд, написанных ниже. Пока что это простой пример, предназначенный проиллюстрировать базовые возможности построения графиков. Мы рассмотрим более сложные примеры позже.

    x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y); figure;

    Команда, создающая график — это, конечно же, plot(x,y) . Да вызова это команды, мы должны задать две переменных — x и y . Функция plot просто принимает в качестве аргументов два вектора одинаковой длины, интерпретирует значения из первого как значения координаты X, а второго, как значение координаты Y и рисует линию соединяя эти координаты.

    Первая команда, x = linspace(0, 2*pi, 100) , использует функцию linspace , чтобы создать вектор равномерных интервалов (иногда также называемый вектором «линейно распределенных значений»). Первое значение в векторе равно нулю, а последнее . Всего вектор содержит 100 значений. Этот вектор присваивается переменной с именем x .

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

    (Немножко отходя от темы, стоит отметить, что имя переменной может состоять из любой последовательности букв, цифр и подчеркиваний, но не может начинаться с цифры. Нет никаких ограничений на длину имени переменной. Имя чувствительно к регистру, так a и A — это разные переменные).

    Задание править

       y =  x      for    x  [ 0 , 15 ]     (рисунок 2)

    Немного о командах править

    Следующие команды и функции очень полезны для задания переменных при построении 2D графиков.

    • linspace — создает вектор равномерно (линейно) распределенных значений

    Использование: linspace(start, end, length) . Параметр length является опциональным и определяет число элементов в возвращаемом векторе. Если вы опустите этот параметр, то вектор будет содержать 100 значений, первое из которых будет равно start , а последнее stop .

    • plot — строит двумерный график

    Использование: plot(x, y) x и y — векторые одинаковой длины

    • figure — создает новую форму для графика

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

    • hold on / hold off — команда, определяющая хотите ли вы строить последующие графики на тех же осях ( hold on ) или хотите заменить предыдущий построенный график ( hold off ).

    Пример править

    Сейчас мы построим графики, изображенные на рисунках 3 и 4. На рисунке 3 изображены три тригонометрические функции

    на одном множестве осей. На рисунке 4 показан график суммы этих функций. Первым делом, используем функцию linspace , чтобы создать вектор X-значений

    octave:1> x = linspace(0, 2*pi);

    Затем посчитаем Y-значения для всех трёх функций

    octave:2> a = cos(2*x); octave:3> b = sin(4*x); octave:4> c = 2*sin(x);

    Следующие команды построят график всех трёх функций

    octave:5> figure; octave:6> plot(x, a); octave:7> hold on; octave:8> plot(x, b); octave:9> plot(x, c);

    На строке 5 ( figure ) мы сообщаем Octave, что хотим построить новый график в новом окне. Считается хорошей практикой вызывать figure перед построением нового графика. Такой подход помогает избежать случайно замены предыдущего важного графика.

    Обратите внимание, что на строке 7, используется команда hold on , чтобы сообщить Octave, что мы не хотим замещать предыдущий график (со строки 6) последующими. Octave, после использования hold on , будет строить все последующие графики на той же плоскости, пока не будет вызвана команда hold off .

    Форма, которую вы видите, отображает все три построенные функции одинаковым цветом. Чтобы заставить Octave задать различные цвета автоматически, постройте все функции за один шаг:

    octave:10> plot(x, a, x, b, x, c);

    Ну, и наконец-то, построим второй график (рисунок 4):

    octave:11> figure; octave:12> hold off; octave:13> plot(x, a+b+c);

    Строка 11 создает новое окно, а строка 12 сообщает Octave, что все последующие построения графиков будут просто замещать предыдущие. На строке 13 мы строим график суммы всех функций.

    Небольшая заметка для пользователей Mac:
    Если команды для построения графиков не работают, выполните следующую команду:

    setenv («GNUTERM», «x11»)

    Упражнения править

    • Постройте график функции abs(x) для x ∈ [ − 5 , 5 ] .
    • Постройте круг единичного радиуcа с центром в начале координат (это не так легко)
    • Постройте графики функций, которые вам нравятся 🙂

    Предупреждение править

    Если вы попытаетесь (или уже попытались) построить что-нибудь вроде x 2 > или sin ⁡ x × cos ⁡ x у вас возникнут некоторые проблемы. Скорее всего вы получите следующие сообщения:

    error: for A^b, A must be square

    В случае sin(x) * cos(x) :

    error: operator *: nonconformant arguments (op1 is 1x100, op2 is 1x100)

    Эти две ошибки будут появляться, когда бы вы ни пытались умножить или разделить две векторные переменные (вспомните, ведь x и y — это векторы). На данный момент, чтобы исправить это вы можете сделать одну из двух вещей:

    • Использоваеть plot(sin(x).*cos(x)) . Обратие внимание на точку между sin(x) и * . Для используйте plot(x.*x) или plot(x.^2)
    • Прочитайте раздел о векторах и матрицах.

    Неочевидные проблемы править

    Так как Octave — это математический пакет для численных (а не символических) вычислений, он тоже делает численные ошибки и не выполняет некоторые операции хорошо. Чтобы убедиться в этом, давайте построим график x для интервала [-π π]. Что же не так на получившемся рисунке? Он плохо смасштабирован из-за точек разрыва, которые тяжело обрабатывать численно.

    Ваша задача заключается в том, чтобы сгенерировать (намного лучше выглядящий) график на рисунке ниже, используя всё то, что вы выучили до этого момента и функцию axis .

    axis можно использовать, чтобы отрегулировать, какая часть графика будет фактически отображена на экране. Используйте команду help axis , чтобы узнать, как работает эта функция.

    Возможно, придется немного подумать, как нарисовать правильные асимптотические линии x = ± π / 2

    Чтобы получить такой же график, как на рисунке выше, введите следующее:

    octave:1> x_part_left = linspace(-pi, -pi/2-0.001, 100); octave:2> x_part_mid = linspace(-pi/2, pi/2, 100); octave:3> x_part_right = linspace( pi/2+0.001, pi, 100); octave:4> plot(x_part_left, tan(x_part_left)); octave:5> hold on; octave:6> plot(x_part_mid, tan(x_part_mid)); octave:7> plot(x_part_right, tan(x_part_right)); octave:8> y_limit = 4; octave:9> axis([-pi, pi, -y_limit, y_limit]); octave:10> plot(linspace(-pi/2, -pi/2, 100), linspace(-y_limit, y_limit, 100), '.'); octave:11> plot(linspace( pi/2, pi/2, 100), linspace(-y_limit, y_limit, 100), '.'); octave:12> hold off;

    Горизонтальный диапазон [-π π] разбит на три части так, чтобы точки пропустить точки разрыва. В строках 4-7 строятся разные части функции тангенса. После этого, в строке 8, мы задаем ограничение оси Y, чтобы установить диапазон значений по вертикали (используя функцию axis в строке 9). В конце мы добавляем две пунктирные линии на позициях x = ± π / 2

    Скрипты править

    В Octave есть очень полезная возможность сохранять комманды и запускать их заново позже. Вы, вероятно, захотите сохранить вашу работу или написать код, который можно заново использовать (самостоятельно или отдать кому-то еще). Такие файлы называются скриптами Octave. Их стоит сохранять с расширением .m и тогда Octave сможет самостоятельно распознать их. (Расширение .m используется потому что MATLAB называет свои скрипты «М-файлами», а Octave основывается на MATLAB).

    Чтобы запустить созданные скрипты в Octave вы должны находиться в той же директории, что и файл со скриптом и ввести имя файла без расширения .m . Например, если у вас есть скрипт myscript.m в папке octave, следующие команды выполнят этот скрипт.

    chdir('~/octave'); % This changes to the octave directory myscript;

    Обратите внимание, что команда chdir(‘~/octave’) ; необходима, если вы не находились внутри этой папки во время запуска Octave.

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

    GNU Octave

    Octave — свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня.

    Octave представляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки. Язык Octave оперирует арифметикой вещественных и комплексных скаляров и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на языках C , С++ , Фортран и др.).

    Доступные версии на суперкомпьютерном комплексе:

    * 7.1.0 (релиз от 06.04.2022)
    * 5.2.0 (релиз от 31.01.2020)

    module load Octave/v7.1.0

    Для Octave глобально установлены следующие пакеты: financial, general, geometry, image, io, linear-algebra, mappin, matgeom, optim, parallel, statistics, struct, symbolic.
    По вопросам установки дополнительных пакетов обращайтесь в поддержку суперкомпьютера.

    Тестовые исходные данные расположены в каталоге /opt/software/octave/octave-5.2.0/examples

    Пример использования:
    Входной файл для Octave test.m :

    x = 0 : pi/100 : 2*pi; y = sin(x); plot(x,y); saveas (1, "figure.png");

    sbatch-скрипт для запуска в очереди octave.sbatch :

    #!/bin/bash #SBATCH --job-name=test-octave # Название задачи #SBATCH --error=test-octave-%j.err # Файл для вывода ошибок #SBATCH --output=test-octave-%j.log # Файл для вывода результатов #SBATCH --ntasks 1 # Количество MPI процессов #SBATCH --cpus-per-task 1 # Количество CPU на процесс
    #SBATCH --mail-user=ваша_почта # Укажите ваш email для отправки уведомлений
    #SBATCH --mail-type=END,FAIL # События, требующие уведомления module load Octave/v7.1.0 # Загрузка модуля Octave
    srun octave-cli test.m # Запуск Octave с входным файлом test.m

    Для постановки задачи в очередь выполните команду sbatch octave.sbatch
    Не забудьте скорректировать параметры в скрипте для своих расчетов!
    Посмотреть состояние своих задач можно с помощью команды mj

    Результат:

    result fig
    а) в файле test-octave-.log б) в файле figure.png

    Полезные ссылки

    • Инструкция по работе с системой HPC TaskMaster
    • Официальный сайт: https://octave.org/
    • Документация: https://docs.octave.org/latest/
    • Каталог модулей: https://packages.octave.org/

    Инструкция обновлена 13.02.2023 г.

    Записки дебианщика

    В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.

    10/05/2009

    QtOctave — графическая оболочка для Octave

    Хотя MATLAB и правит миром численных математических расчётов, в этом деле ему зреет очень хорошая альтернатива — GNU/Octave. И хотя у Октавы много проблем, таких как слабая документация и в основном консольный режим работы, есть и хорошие новости: проект QtOctave, ставящий своей целью сделать графическую среду разработки для Octave, весьма неплох. О нём и будет этот небольшой пост.

    Установка
    Для того, чтобы поставить QtOctave, вам потребуется скачать бинарник с сайта авторов и установить пакет octave в вашем дистрибутиве. Собранный и готовый бинарник прямо с сайта qtoctave_binaries_Linux_i386-0.8.1_svn166.binaries.tar.bz2 . Далее устанавливаем QtOctave по инструкции, то есть делаем sudo ./install.sh

    В свежих версиях дистрибутивов QtOctave наличествует в репозиториях, и установить её можно просто и легко:

    aptitude install qtoctave

    По зависимостям потянется и новая версия GNU/Octave, если она ещё не установлена.

    Работа
    Собственно, открываем графическую консольку и пишем:

    Перед вами развернётся графическая благодать, в которой замигает разноцветными огнями вся неимоверная мощь Octave. Разворачиваем одно из окон и открываем там свой скрипт на MATLAB\Octave. Выглядит это так:

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

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

    Так же в комплекте идёт справка в формате HTML, причём весьма добротная. Конечно, до матлабовской ещё очень и очень далеко, но уже что-то. И главное, что это в комплекте, то есть batteries included.
    То есть можно не только работать в Octave, но ещё и получать справку по командам, хотя и весьма базовую.


    Заключение

    В целом впечатление QtOctave производит очень благоприятное. Хотя Octave можно пользоваться таким же способом, как и MATLAB, о чём уже писалось, просмотр переменных и история команд в графическом виде это очень полезные возможности QtOctave. Хочется пожелать успехов проекту и дальнейшего развития.

    • Python(x,y) готовый дистрибутив питона для научных нужд (batteries included).
    • SPYDER (графическая оболочка, входит также в Python(x,y) в дополнение к Eclipse)

    К сожалению, главный (и единственный!) разработчик QtOctave прекратил работу над проектом. Вот чем стоило бы заняться, КДЕшники, а не пилить свистульки типа фильтров Ланцоша и прочей мишуры.

    13 комментариев:

    ..в графической консолькЕ..
    ..по клавишЕ TAB.. Ответить Удалить

    qtoctave присутствует в репозиториях Ubuntu 9.10. Версия аналогичная (совпадает ли ревизия svn, не знаю). Чувствую, скоро octave станет моей настольной программой. Надо будет рассчитывать электрические цепи. Ответить Удалить

    Вопрос, а как в octave со скоростью по сравнению с matlab и есть ли поддержка например graphic toolbox и guide? Ответить Удалить

    Однако поскольку я для тех же целей пользуюсь не м̶а̶т̶л̶а̶б̶о̶м̶ октавой, а питоном, то не удержусь и подброшу и̶з̶ в̶р̶а̶ж̶е̶с̶к̶о̶г̶о̶ л̶а̶г̶е̶р̶я̶ пару ссылок на графические оболочки для Python и SciPy. Итак,

    Python(x,y) готовый дистрибутив питона для научных нужд (как теперь говорят «с батарейками» — всё сразу, и библиотеки, и графическая оболчка, даже две).

    SPYDER (графическая оболочка, входит также в Python(x,y) в дополнение к Eclipse)

    Хотя я сам использую совсем не графический, но очень удобный IPython 🙂 Ответить Удалить

    Python + matplotlib мне достаточно Ответить Удалить

    @triklozoid комментирует.
    Спасибо, поправлено.

    @Dr.AKULAvich комментирует.
    qtoctave присутствует в репозиториях Ubuntu 9.10
    И это хорошо. Просто у меня кое-где всё ещё Этч и там его нету.

    Чувствую, скоро octave станет моей настольной программой. Надо будет рассчитывать электрические цепи.
    Надеюсь, однако: (1) мало документации, (2) графический интерфейс в зачаточном виде и (3) мало тулбоксов делают обживание Октавы делом непростым.

    @ can3p комментирует.
    Вопрос, а как в octave со скоростью по сравнению с matlab
    Октава быстрее, по крайней мере на обработке изображений. Типичные операции (Фурье, перемножение матриц) быстрее на 10-15%. Замеры где-то были, надо будет поискать и выложить.

    и есть ли поддержка например graphic toolbox и guide?
    Это я не очень понял, что имеется в виду.

    @Сергей комментирует.
    Спасибо, Миша!
    Ю аре велком, как говорят в наших степях 🙂

    Однако поскольку я для тех же целей пользуюсь питоном
    Знаю я вас, оголтелых питонистов :-)))

    не удержусь и подброшу
    Это я только за. Кстати, ссылки включил в пост.
    Спасибо!

    @NL комментирует.
    Python + matplotlib мне достаточно
    Это да, но не всем хватает. Ответить Удалить

    Ну до матлаба ему ещё очень далеко, хотя, как говорится всё впереди. Ответить Удалить

    Больше года пользуюсь собственной сборкой — octave + notepad++/npp_exec. Очень удобно. Практически не обращаюсь к МАТЛАБ за консольными вычислениями. Ответить Удалить

    > Знаю я вас, оголтелых питонистов :-)))

    Хех. Вы нас ещё плохо знаете. 🙂 Я вот для расчётов использую Sage, который включает в себя и SciPy, и NumPy, и Matplotlib, и ещё много нужных вещей.

    Что же касается Octave, то меня интересует такой вопрос: насколько синтаксис Octave схож с синтаксисом MATLAB’а (с тем, чтобы предложить коллегам читать учебники по MATLAB’у, а расчёты проводить в Octave — для тех, кто привык к нему)?
    И может ли GNU Octave + QtOctave эффективно заменить MATLAB в научных вычислениях? Да и вообще, в каком направлении стоит копать, имея возможность и желание перевести компьютеры на работе на свободное ПО и имея сотрудников, не знающих английский?

    Кстати, а почему вы пишете «GNU/Octave» а не «GNU Octave»? Ведь насколько я понял аргументацию этого слэша в слове «GNU/Linux», его следует понимать как «GNU+Linux», а если без него, например «GNU Octave», — как «Octave от проекта GNU». Или я что-то недоразумел?

    @Блог посвящённый софту комментирует.
    Ну до матлаба ему ещё очень далеко, хотя, как говорится всё впереди.
    Третья версия — это то, что уже съедобно. То есть это вообще можно рассматривать для хоть каких-то применений.

    @Анонимный комментирует.
    Практически не обращаюсь к МАТЛАБ за консольными вычислениями.
    Повезло. Я без матлаба не жилец, потому как Октава не умеет нормально делать графики, которые можно на ходу анализировать. И нет, гнуплот это не решение.

    @v-2e комментирует.
    Я вот для расчётов использую Sage, который включает в себя и SciPy, и NumPy, и Matplotlib, и ещё много
    Оооо даааа, Sage это вообще как Грендайзер-робот-звездолёт: огромный, страшный и корявый 🙂 Семь ног, десять рук, три задницы. Одна рука из стекла, вторая из бетона, третья наполовину доделана из углеродных нанотрубок. Емакс на этом фоне как трёхколёсный велосипед «Дружок» перед межгалактическим звездолётом 🙂

    Что же касается Octave, то меня интересует такой вопрос: насколько синтаксис Octave схож с синтаксисом MATLAB’а
    Почти идентичен. После долгого поливания разработчиков октавы дерьмом, пардон, до них таки дошло, что их жалкая поделка никому не нужна без 100% совместимости с матлабом. И с третьей версии они начали пилить это в правильную сторону.

    с тем, чтобы предложить коллегам читать учебники по MATLAB’у, а расчёты проводить в Octave — для тех, кто привык к нему?
    Октава в консоли почти не отличается от матлаба. Октава — это такая любительская поделка под матлаб.
    Очень слабая поддержка функций, нужных для теории управления, глупые ошибки в Images processing toolbox (функция imread не читает tiff-файлы? и это в релизе!?). В общем, елозить напильником по ней придётся.

    И может ли GNU Octave + QtOctave эффективно заменить MATLAB в научных вычислениях?
    Зависит от области. В обработке изображений — в принципе да, в теории управления — нет. Это то, что знаю я.

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

    имея возможность и желание перевести компьютеры на работе на свободное ПО
    А надо ли? Большинство нормальных инженерных программ всё равно платные (AutoCAD, программы для FEM, MATLAB. ). Себе дороже. Красноглазая недоделка Октава — это лучшее (слышите? ЛУЧШЕЕ!) из всего научного опенсорца. Всё остальное жиже на порядок.


    >> научных вычислениях
    >> сотрудников, не знающих английский

    Таких надо гнать ссаными тряпками от научных вычислений. Человек, не знающий английского, не получил нормального образования и не способен читать современную литературу (а не устаревшее барахло 60-х годов).
    Выкидывайте таких «сотрудников» подальше, а то будете, как мифи, слиты с помойками типа Краснодарского политехнического колледжа.

    Кстати, а почему вы пишете «GNU/Octave» а не «GNU Octave»?
    Дань уважения проекту GNU, о котором сейчас не часто вспоминают. Октава — часть GNU. В общем, это (в моём случае) напоминание о старике Столмане и его GNU.

    Ведь насколько я понял аргументацию этого слэша в слове «GNU/Linux», его следует понимать как «GNU+Linux»
    В общем да. Но и Октава без GNU не случилась бы. Это я вот на это намекаю.

    Кстати, QtOctave в Ленни есть, должа быть и в Сквизи (у меня его нету нигде). Ответить Удалить

    >читать современную литературу (а не устаревшее барахло 60-х годов).
    Думаю ещё будет время когда как в 50-е будет актуальная и понятная русскоязычная литература по новейшим вопросам.
    Поймите, сперва идёт заинтересованность в технике и только потом (от нужды) изучение языка. А если всё изначально будет на ихнем языке, от самых азов- многих мы просто потеряем.
    Я скажем, и не собирался знать английский всерьёз если бы не интерес к науке и технике, который родился и вырос на советских учебниках и научно-технических журналах. В которых всё было понятно и наглядно даже для школьника. А уж потом. Ответить Удалить

    Уважаю. Хотя сам использую октаву в чистом виде (пересел после матлаба по необходимости — привычка) на разных линуксах. Вот что было бы совсем интересно — это генерация C-кода для всякого железа (по подобию MATLAB Embedded Coder) из m-файлов. Ответить Удалить

    @Ross комментирует.
    Думаю ещё будет время когда как в 50-е будет актуальная и понятная русскоязычная литература по новейшим вопросам.

    «Жаль только, что в эту пору чудесную жить не придется ни мне, ни тебе».

    Современная научная литература = английский язык. Если, конечно, хочется заниматься актуальными вещами.

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

    Китайцы и индусы изучают английский в своих (далеко не самых лучших) университетах, и там учат по современным английским книгам. И все живы, здоровы, и заполоняют университеты других стран. В отличие от.

    Я скажем, и не собирался знать английский всерьёз
    А я-то всегда думал, что университетское образование — это ещё и владение иностранным языком.

    @Анонимный комментирует.
    Уважаю. Хотя сам использую октаву в чистом виде (пересел после матлаба по необходимости — привычка) на разных линуксах.

    Анонимус, качество кода Октавы, скажем так, оставляет желать очень много лучшего. Как и документация. У октавы нет profiler, нет возможности запускать MEX-файлы, паршивая документация, очень плохо с алгоритмами оптимизации. И нет графического интерфейса (хотя есть QtOctave, про что и пост).

    Вот что было бы совсем интересно — это генерация C-кода для всякого железа

    Вот, кстати, этим геморроем сейчас автор этих строк и страдает. Только не для железа, а для ускорения алгоритмов оптимизации. Буквально сегодня дописал на ANSI C + BLAS алгоритм для convex quadratic programming на C — так оно тратит 2 микросекунды на итерацию, по сравнению с 50 в M-файле.

    Анонимус, проблема в том, что эти ваши MATLAB Embedded Coder выдают абсолютно нечитабельный (и потенциально — не самый лучший) выхлоп на C/C++. Написанное руками человека, имеющего представление о том, что он делает — намного лучше. Кстати, переплюнуть JIT-компилятор матлаба при написании того же алгоритма на ANSI C было на удивление непросто.

    Думаю скоро написать пост по результатам битья головой о стену. Ответить Удалить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *