Ubuntu scilab не запускается

Обновлено: 04.07.2024

[Test case]
Steps to reproduce:
1. have installed Scilab on Ubuntu Xenial system
2. install system updates
3. try to launch Scilab from GUI - it does not start
4. try to launch Scilab from terminal - it does not start with the following output in the terminal:

Scilab cannot create Scilab Java Main-Class (we have not been able to find the main Scilab class. Check if the Scilab and thirdparty packages are available).

Expected results:
Scilab works normally on Ubuntu 16.04 LTS system.

Actual results:
see error above.

[Regression potential]
The fix is a simple oneliner that allows libjogl2-java to detect Mesa with both new and original version of Mesa.

Software rendering with recent mesa (either LLVMPipe, softpipe or swr) breaks matlab.

Seen with MATLAB 2016a on Kubuntu 17.04 with the latest (git) mesa as of today.

Graphic commands (e.g. plot) hang and make it impossible to close Matlab cleanly.

Error using hgopengl
Java exception occurred:
java.lang. RuntimeExceptio n: Waited 5000ms for: <38d5ebf2, 64757a04>[count 2 [ add. 0, orig 2], qsz 0, owner
<Startup Class Loader>, add.owner Startup Class Loader- SharedResourceR unner] - <main>
at jogamp. common. util.locks. RecursiveLockIm pl01Unfairish. lock(RecursiveL ockImpl01Unfair ish.java: 198)
at com.jogamp. opengl. GLProfile. initSingleton( GLProfile. java:199)
at com.jogamp. opengl. GLProfile. getDefaultDevic e(GLProfile. java:2003)
at com.jogamp. opengl. GLCapabilities. <init>( GLCapabilities. java:84)
at com.mathworks. hg.uij. OpenGLUtils$ MyGLListener. getGLInformatio n(OpenGLUtils. java:320)
at com.mathworks. hg.uij. OpenGLUtils$ MyGLListener. getGLData( OpenGLUtils. java:498)
at com.mathworks. hg.uij. OpenGLUtils. getGLData( OpenGLUtils. java:78)

Error in hgopengl

On softpipe, the same command hangs.

This is curious because matlab has itself a software rendering mode, that seems to rely on mesa X11. The opengl info for it returns

So, it looks like mesa was supporting matlab 2016a just fine at the time of 10.5.2 and that we are now facing a regression.

- try to track down the first Mesa version (ideally a commit) that breaks things
- isolate that the issue is not LLVM related by rebuilding mesa without it
- check that the correct libraries are picked (using strace or LD_DEBUG=libs)
Matlab might be shipping libraries (say libc/libstdc++) that are older than the ones Mesa is build against.
- try to get more verbose information of the issue - not sure if the dev. will have a matlab license to debug themselves

I totally understand the difficulty in looking into an issue related to (expensive) commercial, that - as such - is hard to reproduce.

Thanks for the suggestion, even if - on a machine that is in use - I will not be able to do any bisection.

In any case, my intent was mostly to assure that a trace of the problem is present on the bug tracker, in case other users run into the issue and possibly to guide them if they need to get new hardware with the need to run Matlab on it.

Unfortunately the Matlab experience on Linux is sad. Not working with nouveau. Not working with soft rendering, either. Working with its own soft rendering, but with many limitations. Fortunately, it seems OK on intel graphics.

"""
MATLAB has experienced a low-level graphics error, and may not have drawn correctly.
Read about what you can do to prevent this issue at Resolving Low-Level Graphics Issues then restart MATLAB.
To share details of this issue with MathWorks technical support,
please include this file with your service request.
"""

Finally, with llvmpipe, Matlab tries to create a 3.3 compatibility profile and fails. It then successfully creates a legacy context with glXCreateNewCon text(). It calls glGetIntegerv( GL_MAJOR/ MINOR_VERSION) then destroys the context.

You could try installing some older versions of Mesa to see if Matlab 2016a works/fails. But Matlab 2017b seems to act differently.

thanks for testing! Indeed, I think that Matlab 2016 is fine with the NVIDIA proprietary driver. However, I cannot use it because I have a KDE desktop and the nvidia proprietary drivers hang the konsole as per

Furthermore, I prefer the free drivers when my graphics card copes with them.

The different response to the opengl info may be related to a slightly different mesa/graphics stack combination. Incidentally, it is unclear to me whether you got the "MATLAB has experienced a low-level graphics error" with llvmpipe or the hardware driver.

Matlab seems to use some java library to interact with opengl and I do not know if it is something commercial or something open source that MathWorks has adapted to its needs. In the latter case, testing might be easier.

. looks like also scilab has issues with the software renderer. With LIBGL_ALWAYS_ SOFTWARE= 1, scilab cannot plot (shows empty plot windows). May be a totally unrelated issue, but I think that scilab and matlab have in common the use of jogamp for graphics rendering.

После очистки пакета, о котором идет речь, он, кажется, разрешил его:

Не уверен, почему и как он сломался в первую очередь.

Сначала нам нужно установить Scilab с (если не установлено ранее):

Насколько я помню, на ранней стадии разработки Bionic Scilab успешно работал. Поэтому я подозреваю, что проблема с OpenJDK 11. Я решил установить предыдущую версию OpenJDK-8 из Ubuntu 16.04 LTS.

После этого команда scilab приводит к предупреждению:

$ scilab Предупреждение: не удалось найти Java-пакет '/usr/share/java/jlatexmath-fop-1.0.6.jar'. Возникли некоторые проблемы при загрузке библиотек Java. Это может привести к непоследовательному поведению. Проверьте SCI / etc / classpath.xml.

Я сообщил об ошибке 1767082 об этом. Я загрузил требуемый пакет из Интернета и установил его вручную:

После этого scilab запускается нормально с терминала .

Чтобы вернуть default-jre и default-jre-headless в 18.04 LTS, вам необходимо обновить пакеты с помощью:

Примечание 1: Цветная тема Scilab несовместима с темными темами Gtk, поэтому пользователь должен установить световой сигнал (это ошибка 1547561), например Radiance или Radiant-MATE.

Сначала нам нужно установить Scilab с (если он не установлен ранее):

sudo apt-get install scilab

Насколько я помню , на ранней стадии разработки Bionic Scilab успешно работал.

Поэтому я подозреваю, что проблема OpenJDK 11. Я решил установить предыдущую версию OpenJDK-8 из Ubuntu 16.04 LTS.

После этого команда scilab приводит к предупреждению:

$ scilab Warning: Could not find Java package '/usr/share/java/jlatexmath-fop-1.0.6.jar'. Some problems during the loading of the Java libraries occurred. This could lead to inconsistent behaviours. Please check SCI/etc/classpath.xml.

Я сообщил об ошибке 1767082 об этом.

В процессе работы я загрузил требуемый пакет из Интернета и установил его вручную:

После этого scilab запускается нормально с терминала.

sudo sed -i 's/^Terminal=false$/Terminal=true/' /usr/share/applications/scilab.desktop

Чтобы вернуть default-jre и default-jre-headless в 18.04 LTS, вам необходимо обновить пакеты с помощью:

sudo apt-get upgrade

Примечание 1: Цветная тема Scilab несовместима с темными темами Gtk, поэтому пользователь должен установить световой сигнал (это ошибка 1547561), например Radiance или Radiant-MATE.

Примечание 2: Система Scilab ATOMS (см. ошибка 1547561 ) из-за проблем с HDF5.

Поэтому, если вам нужен полнофункциональный Scilab, вы должны использовать двоичный архив 6.0.1 с официального сайта и запускать приведенные ниже команды (загружать, извлекать, добавлять в PATH, устанавливать дробовики и MIME-ассоциации):

/Software wget http://www.scilab.org/download/6.0.1/scilab-6.0.1.bin.linux-x86_64.tar.gz tar -xzf scilab-6.0.1.bin.linux-x86_64.tar.gz cd scilab-6.0.1 echo "PATH=$PATH:/home/$USER/Software/scilab-6.0.1/bin" >>

/.bashrc echo "PATH=$PATH:/home/$USER/Software/scilab-6.0.1/bin" >>

/.profile mkdir -p

/.local/share/applications sed -i 's/^Terminal=false$/Terminal=true/'

/Software/scilab-6.0.1/share/applications/.desktop cp -a

Сначала нам нужно установить Scilab с (если он не установлен ранее):

sudo apt-get install scilab

Насколько я помню , на ранней стадии разработки Bionic Scilab успешно работал.

Поэтому я подозреваю, что проблема OpenJDK 11. Я решил установить предыдущую версию OpenJDK-8 из Ubuntu 16.04 LTS.

Нам нужно установить OpenJDK 8 по умолчанию с помощью команды:

sudo update-java-alternatives --set \ java-1.8.0-openjdk-$(dpkg --print-architecture)

После этого scilab приводит к предупреждению:

$ scilab Warning: Could not find Java package '/usr/share/java/jlatexmath-fop-1.0.6.jar'. Some problems during the loading of the Java libraries occurred. This could lead to inconsistent behaviours. Please check SCI/etc/classpath.xml.

Я сообщил об ошибке 1767082 об этом.

В процессе работы я загрузил требуемый пакет из Интернета и установил его вручную:

После этого scilab запускается нормально с терминала.

sudo sed -i 's/^Terminal=false$/Terminal=true/' /usr/share/applications/scilab.desktop

Примечание 1: Цветная тема Scilab несовместима с темными темами Gtk, поэтому пользователь должен установить световой сигнал (это ошибка 1547561 )

Примечание 2: Система Scilab ATOMS также повреждена (см. ошибка 1547561 ) из-за проблем с HDF5.

Поэтому, если вам нужен полнофункциональный Scilab, вы должны использовать двоичный архив 6.0.1 с официального сайта и запускать приведенные ниже команды (загружать, извлекать, добавлять в PATH, устанавливать дробовики и MIME-ассоциации):

/Software wget http://www.scilab.org/download/6.0.1/scilab-6.0.1.bin.linux-x86_64.tar.gz tar -xzf scilab-6.0.1.bin.linux-x86_64.tar.gz cd scilab-6.0.1 echo "PATH=$PATH:/home/$USER/Software/scilab-6.0.1/bin" >>

/.bashrc echo "PATH=$PATH:/home/$USER/Software/scilab-6.0.1/bin" >>

После установки я попытался запустить его из GUI ( Приложения → Другое → Scilab ) - не запускается.
Затем я попытался запустить его из терминала с помощью команды scilab . Терминал выводится следующим образом:

поэтому он не может найти Java. Я сообщил ошибка 1762999 об этой проблеме.

Я проверил существование libjava.so :

так что на месте.

Что я должен сделать, чтобы Scilab 6.0.1 работал на Ubuntu 18.04 LTS?

* Метод на основе репозитория (ATOMS не будет работать)

Обновление 2019-04-14 . В настоящее время Scilab портирован на OpenJDK 11.
Затем мы должны установить Scilab с (если он не был установлен ранее):

Таким образом, мы можем использовать последний пакет scilab 6.0.1-7ubuntu1

18.04 как обычно из графического интерфейса, но scilab-cli и scilab-adv-cli теперь не работают (он новый ошибка 1825037 ).

Примечание 1: Цветовая тема Scilab несовместима с темными темами Gtk, поэтому пользователь должен установить светлую (это ошибка 1547561 ), например Radiance или Радиант-MATE .

Примечание 2: Система Scilab ATOMS тоже не работает (см. ошибка 17655 ) из-за проблем с HDF5.

* Бинарный метод загрузки (полностью функциональный)

Так что если вам нужен полнофункциональный Scilab, вам следует удалить упакованную версию с

и используйте двоичный архив 6.0.2 с официального сайта и выполните следующие команды (скачать, извлечь, добавить в PATH, установить выстрелы и MIME-ассоциацию):

ATOMS и другие компоненты будут работать как положено. Не забудьте установить пакет build-essential для запуска симуляции Xcos Modelica.

* Метод загрузки AppImage (полностью функциональный)

Нам нужно скачать последнюю версию с соответствующая страница или вручную:

а затем добавить его в PATH с

В результате вы получите Scilab. Но пока нет ассоциаций MIME (пока).

Если вы хотите, чтобы Scilab 5.5.2 работал на Ubuntu 18.04.1 LTS, см. другой ответ .
Двоичный метод также применим для Ubuntu 18.10, так как ATOMS все еще не работает .

Завтра мне сдавать экзамен по такому предмету как КСВЭ(Компьютерный сервис вычислительного эксперимента). А лучший способ подготовки — это написание статьи. Я рассмотрю часть вопросов к экзамену, которые связаны с SciLab.
Статья больше подходит для студентов, использующих scilab для проверки решения, для или для сдачи экзамена по дисциплине КСВЭ. Для более подробного изучения надо читать литературу, указанную в конце статьи

Основные термины
Scilab (читается Сайлэб) — пакет прикладных математических программ, предоставляющий мощное открытое окружение для инженерных (технических) и научных расчётов.
CeCILL (от «CEA CNRS INRIA Logiciel Libre») — это лицензия на свободное программное обеспечение, адаптированная к интернациональному законодательству и законодательству Франции, подобная GNU General Public License и сохраняющая совместимость с ним.
Система m линейных алгебраических уравнений с n неизвестными (или, линейная система, также употребляется аббревиатура СЛА́У) в линейной алгебре — это система уравнений вида

Обыкнове́нные дифференциа́льные уравне́ния (ОДУ) — это дифференциальное уравнение вида

где — неизвестная функция (возможно, вектор-функция, тогда, как правило, тоже вектор-функция со значениями в пространстве той же размерности; в этом случае говорят о системе дифференциальных уравнений), зависящая от независимой переменной, штрих означает дифференцирование по. Число (порядок старшей производной, входящей в данное уравнение) называется порядком дифференциального уравнения (1)

1. Система компьютерной математики SciLab: История разработки. Возможности и ключевые особенности. Достоинства и недостатки.

История
С 1994 года распространяется вместе с исходным кодом через Интернет. В 2003 году для поддержки Scilab был создан консорциум Scilab Consortium. Сейчас в него входят 25 участников, в том числе Mandriva, INRIA и ENPC (Франция).

Возможности

Scilab содержит сотни математических функций, и есть возможность добавления новых, написанных на различных языках (C, C++, Fortran и т. д.). Также имеются разнообразные структуры данных (списки, полиномы, рациональные функции, линейные системы), интерпретатор и язык высокого уровня.
Scilab был спроектирован как открытая система, и пользователи могут добавлять в него свои типы данных и операции путём перегрузки.
В системе доступно множество инструментов:
2D и 3D графики, анимация
Линейная алгебра, разреженные матрицы (sparse matrices)
Полиномиальные и рациональные функции
Интерполяция, аппроксимация
Симуляция: решение ОДУ и ДУ
Scicos: гибрид системы моделирования динамических систем и симуляции
Дифференциальные и не дифференциальные оптимизации
Обработка сигналов
Параллельная работа
Статистика
Работа с компьютерной алгеброй
Интерфейс к Fortran, Tcl/Tk, C, C++, Java, LabVIEW
Scilab имеет схожий с MATLAB язык программирования. В состав пакета входит утилита, позволяющая конвертировать документы Matlab в Scilab.
Scilab позволяет работать с элементарными и большим числом специальных функций (Бесселя, Неймана, интегральные функции), имеет мощные средства работы с матрицами, полиномами (в том числе и символьно), производить численные вычисления (например, численное интегрирование) и решение задач линейной алгебры, оптимизации и симуляции, мощные статистические функции, а также средство для построения и работы с графиками.
Для численных расчётов используются библиотеки Lapack, LINPACK, ODEPACK, Atlas и другие.
В состав пакета также входит Scicos — инструмент для редактирования блочных диаграмм и симуляции (аналог simulink в пакете MATLAB). Имеется возможность совместной работы Scilab с программой LabVIEW.

Ключевые особенности
Отличия от некоторых коммерческих программ:
Бесплатность.
Свободность (с версии 5.0).
Маленький размер — дистрибутив 4 версии занимал менее 20 МБ против более чем двухгигабайтного пакета MATLAB. Инсталлятор 5 версии (5.4.0) увеличился в объёме до 108 МБ.
Возможность запуска в консоли без использования графического интерфейса, в том числе в версии под Windows (в UNIX и Windows версиях MatLab-а эта возможность присутствует тоже). Это позволяет производить автоматизированные вычисления, есть пакетный режим.

Достоинства и недостатки
Поиски достоинства и недостатков на просторе интернета ни чего не дали. Так что расскажу о том, что я заметил сам.
Если говорить о достоинствах, тут самым основным для меня является бесплатность данного пакета, по сравнению с той же Mathematic, когда для выполнения лабораторных работы приходилось искать серийник или crack. Далее — это кросплатформеность, т.к. я больше предпочитаю использовать Gentoo, чем Windows. В принципе большенство достоинств описано в пункте Ключевые особенности.
Из недостатков я вижу только 2: Это нет такой визуализации программирования как в Mathematic, а так же система использует прежде всего численные подходы, для вычисления, что может сказаться на точности.

2. Основы работы в SciLab. Пользовательские и системные переменные. Математические выражения. Коментарии


Прежде чем перейти дальше, рассмотрим сам интерфейс. При запуске открывается командное окно.

Есть 2 варианта работы: 1 — это работа в том же командном окне, 2 — открыть SciNotes(что-то вроде блокнота с подсветкой) где можно написать код, который позднее запустить, результат выполнения появится в командном окне.

Для примера я рассмотрю вывод Hellow world.


Командная строка. Используем функцию вывода на дисплей disp()

При работе в SciNotes вы получите что то похожее

для выполнения кода, надо или нажать на стрелочку в право :) (как во многих средах разработки)
или Выполнение->… без отображение команд
в принципе можно использовать и другие методы выполнения, и не использовать вывод на экран
Результатом выполнения будет:

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

SciLab чувствителен к реестру, т.е. А и а — разные переменные переменные.

a=1,A=3
//Каждая операция начинается с новой строки или через запятую
//коментарии можно оставлять после двух символоф слэш
b=3
c=a+b
disp©

Основные операции:
+ сложение
— вычитание
* умножение
/ деление справа, т.е. x/y = xy^(-1)
\ деление слева, т.е. x\y = x^(-1)y
^ возведение в степень, т.е. x^y
** возведение в степень (эквивалентно ^)
’ эрмитово сопряжение (комплексное сопряжение и транспонирование)

3. Основы работы в SciLab. Функции и их типы. Способы объявления пользовательских функций. Использование функций. Файлы-сценарии и их применение для хранения функций.

Элементарные математические функции.

acos acosd acosh acoshm acosm acot acotd acoth
acsc acscd acsch asec asecd asech asin asind
asinh asinhm asinm atan atand atanh atanhm atanm
cos cosd cosh coshm cosm cotd cotg coth
cothm csc cscd csch sec secd sech sin
sinc sind sinh sinhm sinm tan tand tanh
tanhm tanm
exp expm log log10 log1p log2 logm max
maxi min mini modulo pmodulo sign signm sqrt
sqrtm

iconvert преобразование к целочисленному представлению
inttype определение типа целого числа

простейший способ вызова пользовательской функции:

пример пользовательской фунции:

function y = myfunction ( x )
y = 2 * x
endfunction

Сохраняем её. Далее приведён пример вызова данной функции

-->exec('D:\PRIVATE\Учёба\КСВЭ\myfunction.sci', -1)
-->y = myfunction ( 3 )
y =

4. Определение одномерный и многомерных массивов. Основные действия над массивами.

Пример, как задаётся одномерный массив:

квадратные скобки ”[” и ”]” обозначают начало и конец перечисления
элементов матрицы,
запятой ”,” отделяются элементы матрицы, находящиеся в одной строке,
точка с запятой ”;” разделяет строки матрицы.

size определить размер матрицы
matrix изменить размер матрицы
resize_matrix создать новую матрицу заданного размера и скопировать
в нее элементы из исходной матрицы

Операции над матрицами:
Обращение к элементам матрицы
i = 1; 2, а j = 3; 4
для этого возьмём уже готовую матрицу

-->A = testmatrix (" hilb ", 5)
A =
25. — 300. 1050. — 1400. 630.
— 300. 4800. — 18900. 26880. — 12600.
1050. — 18900. 79380. — 117600. 56700.
— 1400. 26880. — 117600. 179200. — 88200.
630. — 12600. 56700. — 88200. 44100.
-->A(1: 2, 3: 4)
ans =
1050. — 1400.
— 18900. 26880

A матрица целиком
A(. ) матрица целиком
A(i:j,k) элементы матрицы в k-ом столбце с i-ой по j-ую строку
A(i,j:k) элементы матрицы в i-ой строке с j-ого по k-ый столбец
A(i,:) i-ая строка матрицы
A(:,j) j-ый столбец матрицы

Генерация единичной матрицы

Операции над матрицами
+ сложение .+ поэлементное сложение
— вычитание .- поэлементное вычитание
* умножение .* поэлементное умножение
/ деление справа ./ поэлементное деление справа
\ деление слева .\ поэлементное деление слева
^ или * возведение в степень :^ поэлементное возведение в степень
’ эрмитово сопряжение (комплексное сопряжение и транспонирование)
.’ транспонирование без сопряжения

пример умножения числа на еденичную матрицу 2 на 2

5. Определение одномерный и многомерных массивов. Специальные матричные функции

функции работы с матрицами
chol разложение Холесского
companion сопровождающая матрица
cond число обусловленности
det определитель матрицы
inv обратная матрица
linsolve решение систем линейных уравнений
lsq метод наименьших квадратов
lu LU-разложение с выбором опорного элемента
qr QR-разложение
rcond обратное число обусловленности
spec собственные значения и векторы
svd разложение по сингулярным числам матрицы
testmatrix генерация специальных матриц (Гильберта, Франка и др.)
trace след матрицы

6. Определение одномерный и многомерных массивов. Решение СЛАУ. Символьные массивы и операции над ними

Текст файла–сценария с решением задачи по формулам Крамера

-->A=[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6];//Матрица коэффициентов
-->b=[8;9;-5;0]; //Вектор свободных коэффициентов
-->//Первая вспомогательная матрица
-->A1=A;A1(:,1)=b;
-->//Вторая вспомогательная матрица
-->A2=A;A2(:,2)=b;
-->//Третья вспомогательная матрица
-->A3=A;A3(:,3)=b;
-->//Четвертая вспомогательная матрица
-->A4=A;A4(:,4)=b;
-->//Главный определитель отличен от нуля
-->D=det(A);
-->//Определители вспомогательных матриц
-->d(1)=det(A1);
-->d(2)=det(A2);
-->d(3)=det(A3);
-->d(4)=det(A4);
-->//Вектор неизвестных
-->x=d/D
x =
3.
— 4.
— 1.
1.
-->//Проверка
-->P=A*x-b
P =
0.
0.
— 8.882D-16
2.665D-15
-->A=[2 -1 1;3 2 -5;1 3 -2];
-->b=[0;1;4];
-->//Приведение расширенной матрицы к треугольному виду
-->C=rref([A b]);
-->//Выделение последнего столбца из матрицы,
-->//x — решение системы
-->x=C(1:3,4:4)
x =
0.4642857
1.6785714
0.75
-->A*x //Проверка
ans =
— 5.551D-16
1.
4.

7. Численное интегрирование. Подходы к интегрированию. Интегрирование функций заданных пользователем

Численное интегрирование (историческое название: (численная) квадратура) — вычисление значения определённого интеграла (как правило, приближённое). Под численным интегрированием понимают набор численных методов отыскания значения определённого интеграла.
Интегрирование по методу трапеций
проинтегрируем функцию, корень из 2*x-1 на отрезке от 1 до 10 с разбиением в 1 шаг

-->x=1:10
x =
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
-->y=sqrt(2*x-1)
y =
column 1 to 6
1. 1.7320508 2.236068 2.6457513 3. 3.3166248
column 7 to 10
3.6055513 3.8729833 4.1231056 4.3588989
-->inttrap(x,y)
ans =
27.211585

Квадратурные формулы Ньютона Котеса

8.Численное дифференцирование. Подходы к дифференцированию.

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

-->function f=myf(x), f=(x+2)^3+5*x, endfunction;
-->numdiff(myf,1)
ans =
32.
-->x=1;3*(x+2)^2+5
ans =
32.
v=0:3;
-->numdiff(my,v)
ans =
17. 0. 0. 0.
0. 32. 0. 0.
0. 0. 52.999999 0.
0. 0. 0. 80.000002
-->function f1=my1(x), f1=3*(x+2)^2+5, endfunction;
-->my1(v)
ans =
17. 32. 53. 80.

9. Решение ОДУ средствами SciLab. Функции применяемые для решение ОДУ. Решение краевых задач.

Существует 4 способа для решения ОДУ:
1. С помощью команды ode, которая является солвером для решения обыкновенного
дифференциального уравнения.
2. С помощью команды odedc, которая вычисляет решение смешанной дискретно-
непрерывной системы.
3. Команда dassl, которая дает решение неявно выраженного дифференциального уравнения.
4. С помощью команды impl, которая дает решение неявно выраженного линейного
дифференциального уравнения.

-->y0=1;
-->t0=1;
-->t=1:0.01:1.5;
-->deff("[ydot]=f(t,y)",«ydot=y^(1/3)*t»)
-->y=ode(y0,t0,t,f);
-->y_exact=((t^2+2)/3)^(1.5);// это функция точного решения для сравнения
-->my_er=y-y_exact;
-->plot(t,y-y_exact) // это график ошибки вычисления от аргумента t


результатом является такой график

за одно можно увидеть Графическое окно. Построение графиков будет подробно рассмотрено далее.

10. Построение двухмерных графиков в системе SciLab. Основные функции и типы графиков.

Функция plot
рассмотрим пример:


как можно заметить первый параметр функции — это отрезок, а второй функции
так же существует возможность нарисовать сразу несколько функций, если их перечислить:


Функция plot2d
Рассмотрим функцию опять на примере:

x=[-2*%pi:0.1:2*%pi];
y=[sin(x); cos(x)];
plot2d(x,y',style=[color(«red»),color(«blue»)],rect=[-8,-2,8,2])



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

Функция polarplot
Служит для построения графика в полярных координатах

fi=0:0.01:2*%pi;
ro=3*cos(5*fi);
ro1=3*cos(3*fi);
polarplot(fi,ro,style=color(«red»));


получается ромашка

параметры похожи как и в случае с plot2d

11. Построение трёхмерных графиков в системе SciLab. Основные функции и типы графиков.

Существует 4 способа построение графика:
Способ 1.
С помощью команды plot3d. Команда создает 3D график по точкам, заданным матрицами
x, y и z.
Способ 2.
С помощью команды plot3d1. Команда создает 3D график по точкам, заданным
матрицами x, y и z с помощью уровней цвета. Вещь в общем избыточная: величина
координаты z дополнительно еще и покрашена, в зависимости от принимаемого значения
z.
Способ 3.
С помощью команды fplot3d. Это аналог команды fplot3d, но изображаемая поверхность
задана с помощью внешней функции.
Способ 4.
С помощью команды fplot3d1. Это аналог команды plot3d1, но изображаемая поверхность
задана с помощью внешней функции.
Синтаксис этих команд смотри с помощью help.



забыл указать, что в графическом окне есть возможность экспорта данных, т.е. сохранить картинку


deff('[z]=surf(x,y)','z=sin(x)*cos(y)');
t=-%pi:0.3:%pi;
fplot3d(t,t,surf,35,45,«X@Y@Z»);

Результат такой же как в примере 1

deff('[z]=surf(x,y)','z=sin(x)*cos(y)');
t=-%pi:0.3:%pi;
fplot3d1(t,t,surf,35,45,«X@Y@Z»);

результат такой же, как в примере 2

12. Задача полиномов в SciLab. Символьные операции с полиномами. Решение алгебраический уравнений. Сравнение функций fsolve и roots.

Рассмотрим на примере решения уравнения 2x^4-8x^3+8x^2-1=0




В массиве указываются коэффициенты при х
После построения полинома, попробуем получить решение:
X=roots(p)
X =
2.306563
1.5411961
— 0.3065630
0.4588039


Для решения трансцендентных уравнений в применяют функцию Scilab fsolve(x0,f)
задача

Надеюсь данная статья послужит толчком, для дальнейшего изучения SciLab или решения своих задач/лабараторных

новичёк в линуксе. для учёбы нужен scilab но при установке выдаёт следующую ошибку.

дело в том, что по факту свободное место есть. на всех разделах. жд на 1 тб и на данный момент он почти пуст. установлено 876 пакетов только.

]$ mount proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) dev on /dev type devtmpfs (rw,nosuid,relatime,size=966912k,nr_inodes=241728,mode=755) run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755) efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime) /dev/sda1 on / type ext4 (rw,relatime) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=37,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=10977) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M) debugfs on /sys/kernel/debug type debugfs (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime) configfs on /sys/kernel/config type configfs (rw,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev) /dev/sda4 on /home type ext4 (rw,relatime) /dev/sda2 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=195060k,mode=700,uid=1000,gid=1000) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000) [vermilion@PLMCSH

]$ df -h Файловая система Размер Использовано Дост Использовано% Cмонтировано в dev 945M 0 945M 0% /dev run 953M 812K 952M 1% /run /dev/sda1 147G 13G 127G 9% / tmpfs 953M 28M 925M 3% /dev/shm tmpfs 953M 0 953M 0% /sys/fs/cgroup tmpfs 953M 760K 952M 1% /tmp /dev/sda4 305G 27G 263G 10% /home /dev/sda2 1022M 46M 977M 5% /boot tmpfs 191M 24K 191M 1% /run/user/1000 [vermilion@PLMCSH

]$ df -hi Файловая система Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в dev 237K 466 236K 1% /dev run 239K 664 238K 1% /run /dev/sda1 9,4M 310K 9,1M 4% / tmpfs 239K 80 239K 1% /dev/shm tmpfs 239K 18 239K 1% /sys/fs/cgroup tmpfs 239K 131 238K 1% /tmp /dev/sda4 20M 57K 20M 1% /home /dev/sda2 0 0 0 - /boot tmpfs 239K 27 239K 1% /run/user/1000 [vermilion@PLMCSH

]$ остальная часть памяти не распределена

df -hi Файловая система Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в dev 237K 466 236K 1% /dev run 239K 664 238K 1% /run /dev/sda1 9,4M 310K 9,1M 4% / tmpfs 239K 80 239K 1% /dev/shm tmpfs 239K 18 239K 1% /sys/fs/cgroup tmpfs 239K 131 238K 1% /tmp /dev/sda4 20M 57K 20M 1% /home /dev/sda2 0 0 0 - /boot tmpfs 239K 27 239K 1% /run/user/1000

Читайте также: