<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF106%3ASciLab</id>
		<title>LXF106:SciLab - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF106%3ASciLab"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;action=history"/>
		<updated>2026-05-13T06:50:31Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;diff=8506&amp;oldid=prev</id>
		<title>Crazy Rebel в 04:57, 24 августа 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;diff=8506&amp;oldid=prev"/>
				<updated>2009-08-24T04:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 04:57, 24 августа 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== SciLab: Основы ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== SciLab: Основы ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Учебники]]{{Цикл/SciLab}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи были созданы самые различные программы. '''Александр Бикмеев''' покажет вам одну из них – свободный аналог Matlab.''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;: ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи были созданы самые различные программы. '''Александр Бикмеев''' покажет вам одну из них – свободный аналог Matlab.''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;diff=7780&amp;oldid=prev</id>
		<title>Yaleks в 14:00, 2 мая 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;diff=7780&amp;oldid=prev"/>
				<updated>2009-05-02T14:00:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;amp;diff=7780&amp;amp;oldid=7775&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;diff=7775&amp;oldid=prev</id>
		<title>Yaleks: Новая: == SciLab: Основы == : ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF106:SciLab&amp;diff=7775&amp;oldid=prev"/>
				<updated>2009-05-02T13:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: == SciLab: Основы == : &amp;#039;&amp;#039;Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== SciLab: Основы ==&lt;br /&gt;
: ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи были созданы самые различные программы. '''Александр Бикмеев''' покажет вам одну из них – свободный аналог Matlab.''&lt;br /&gt;
&lt;br /&gt;
В научной и инженерной среде хорошо известны так называемые CAS – Computer Algebra System; в русскоязычной литературе их часто называют СКМ – системами компьютерной&lt;br /&gt;
математики. Одним из ярких представителей данного класса продуктов является Matlab, который с успехом применяется во многих&lt;br /&gt;
областях науки и техники, более того, существует в виде Linux-версии.&lt;br /&gt;
Но даже на Западе Matlab по карману не каждому вузу. И вот тут-то&lt;br /&gt;
на сцене появляется супермен из мира свободного ПО – SciLab (http://www.scilab.org).&lt;br /&gt;
&lt;br /&gt;
SciLab – это система компьютерной математики с открытым&lt;br /&gt;
кодом. На момент написания статьи стабильной была версия 4.1.2. В&lt;br /&gt;
установочный комплект включена подробнейшая справка, доступная&lt;br /&gt;
на английском и французском языках: желающие могут загрузить ее&lt;br /&gt;
с официального сайта в PDF-формате.&lt;br /&gt;
&lt;br /&gt;
Задачей данной серии статей является обратить ваше внимание&lt;br /&gt;
на данный продукт, показать некоторые его возможности и, если&lt;br /&gt;
получится, избавить вас от Matlab-зависимости. Очень бы хотелось,&lt;br /&gt;
чтобы статьи попали в руки тех преподавателей вузов, которые все&lt;br /&gt;
еще ведут занятия на пиратском Matlab – быть может, SciLab станет&lt;br /&gt;
для них более законным решением.&lt;br /&gt;
&lt;br /&gt;
=== Подготовка к работе и запуск ===&lt;br /&gt;
Установить SciLab можно из RPM/Deb-пакета (http://rpmfind.net поможет в&lt;br /&gt;
поиске первых), архива с исходными текстами или в виде бинарной&lt;br /&gt;
сборки. Процедура во всех случаях будет стандартной. Для старта&lt;br /&gt;
системы необходимо набрать в консоли команду scilab или, что значительно удобнее, создать на рабочем столе или в меню ссылку на&lt;br /&gt;
приложение.&lt;br /&gt;
&lt;br /&gt;
После запуска вы увидите главное окно, в котором вводятся&lt;br /&gt;
команды и выводятся результаты вычислений. В его верхней находится текстовое меню. Пункт меню Control содержит команды управления процессом вычислений: Resume [продолжить], Abort [отменить] и Stop [приостановить]. Пункт Help вызывает справку, а Editor&lt;br /&gt;
открывает окно редактора файлов-сценариев. Пункт меню Graphic&lt;br /&gt;
Windows # позволяет открывать и создавать графически окна, а также переключаться между ними. Самым интересным пунктом является&lt;br /&gt;
Demos, выбор которого приводит к появлению окна со списком коллекции демонстрационных примеров. Погуляйте по ней – здесь есть&lt;br /&gt;
очень много красивых проектов, особенно в разделе Simulation (рекомендую Demos &amp;gt; Simulation &amp;gt; Bike Simulation). Для знающих английский язык будет очень полезен первый пункт коллекции – Introduction&lt;br /&gt;
to SCILAB, представляющий собой небольшой учебник.&lt;br /&gt;
&lt;br /&gt;
Система SciLab является кросс-платформенной, но интерфейс ветки 4.х зависит от типа ОС. Так, в Windows он более приятный, имеет&lt;br /&gt;
панель инструментов, а также поддерживает двунаправленную работу&lt;br /&gt;
с буфером обмена. Linux-версия SciLab лишена этих возможностей.&lt;br /&gt;
Как и при работе с графической консолью, вы можете вставить текст&lt;br /&gt;
из буфера при помощи Shift+Ins, но скопировать что-то из окна SciLab&lt;br /&gt;
не получится. Впрочем, скоро все изменится (см. Смена версий).&lt;br /&gt;
&lt;br /&gt;
Продукт поставляется с большим руководством, описывающим все&lt;br /&gt;
имеющиеся функции. Для того, чтобы вызвать окно справки, необходимо выбрать пункт меню Help &amp;gt; Help browser либо выполнить команду help. При этом, если вы ничего не меняли, откроется внутренний&lt;br /&gt;
обозреватель справки. Однако, поскольку документация представляет&lt;br /&gt;
собой набор html-файлов, вы можете изменить настройки и читать ее&lt;br /&gt;
в любом удобном вам web-браузере. Для выбора приложения просмотра справки следует воспользоваться пунктами меню Help &amp;gt; Configure.&lt;br /&gt;
Обычно вам предлагаются Firefox, Nautilus, Netscape, Opera и два варианта SciLab Browser – старый (old) и обычный. Наиболее удобен, на мой&lt;br /&gt;
взгляд, обычный SciLab Browser, потому что только он предоставляет&lt;br /&gt;
возможность поиска по всем файлам справки.&lt;br /&gt;
&lt;br /&gt;
Вы можете также искать по части слова в описании или названии функции. Для этого следует выбрать пункт Help &amp;gt; Apropos, ввести в появившемся диалоге искомую подстроку и нажать кнопку OK.&lt;br /&gt;
Откроется окно выбранного вами обозревателя справки с перечнем&lt;br /&gt;
пунктов, удовлетворяющих условию поиска. Например, если вам&lt;br /&gt;
необходимо узнать, как считаются интегралы, то для поиска можно&lt;br /&gt;
ввести слово integral. После нажатия кнопки OK, мы увидим около&lt;br /&gt;
десяти пунктов справки, содержащих данное слово.&lt;br /&gt;
&lt;br /&gt;
Стандартное справочное описание содержит четыре раздела:&lt;br /&gt;
* Calling Sequence [описание вызова] – шаблон вызова данной функции или процедуры&lt;br /&gt;
* Parameters [Параметры] – описание всех возможных параметров текущей функции или процедуры&lt;br /&gt;
* Description [Описание] – описание смысла самой функции или процедуры с примером использования.&lt;br /&gt;
* See Also [Смотри также] – перечень схожих функций или процедур. Каждый предлагаемый вариант представляет собой гиперссылку, позволяющую перейти к его описанию.&lt;br /&gt;
&lt;br /&gt;
Дополнительные пакеты расширений могут иметь свои собственные разделы, так что их полное перечисление здесь не имеет смысла.&lt;br /&gt;
И пусть справка практически абсолютно не пригодна для изучения&lt;br /&gt;
пакета – это именно справка – но постоянно обращение к ней поможет быстрее освоить систему.&lt;br /&gt;
&lt;br /&gt;
=== Простые вычисления ===&lt;br /&gt;
Теперь, я надеюсь, вы сможете ориентироваться в небогатом интер-&lt;br /&gt;
фейсе SciLab, и мы можем перейти непосредственно к работе.&lt;br /&gt;
&lt;br /&gt;
Итак, SciLab – это, преимущественно, система численных вычис-&lt;br /&gt;
лений. Средства аналитического счета есть, но, во-первых, их немно-&lt;br /&gt;
го, а, во-вторых, их использование неочевидно.&lt;br /&gt;
&lt;br /&gt;
Как и в Matlab, команды набираются пользователем и выполня-&lt;br /&gt;
ются системой последовательно. Ввод происходит в строке после&lt;br /&gt;
системного приглашения, которое имеет вид --&amp;gt;. После набора&lt;br /&gt;
команды ее уже нельзя исправить, как в текстовом редакторе: необ-&lt;br /&gt;
ходимо вернуться к ней при помощи клавиш-стрелок (как в термина-&lt;br /&gt;
ле), потом внести изменения и нажать Enter, то есть вновь выполнить&lt;br /&gt;
уже исправленную команду. Благодаря сходству с консолью, строку с&lt;br /&gt;
приглашением называют «командной строкой SciLab».&lt;br /&gt;
&lt;br /&gt;
После каждой команды в рабочем окне появляется результат.&lt;br /&gt;
Если это не требуется (например, вы просто определяете значение&lt;br /&gt;
переменной или функцию), то в конце команды следует поставить&lt;br /&gt;
символ ; (точка с запятой). Если переменная-приемник не указана, то&lt;br /&gt;
результат заносится в ans.&lt;br /&gt;
&lt;br /&gt;
Длинные команды можно разбить на несколько строк, добавляя в&lt;br /&gt;
конце каждой из них две или более точек подряд (..). Возможен так-&lt;br /&gt;
же ввод поясняющего текста (комментария). Любой комментарий в&lt;br /&gt;
SciLab, как и в языке C/C++, начинается с двойного символа //. Однако,&lt;br /&gt;
следует отметить, что версия 4.1.2 не поддерживает кириллицу.&lt;br /&gt;
&lt;br /&gt;
Самым простым случаем является использование SciLab в каче-&lt;br /&gt;
стве калькулятора. Вы вводите какое-то математическое выраже-&lt;br /&gt;
ние с конкретными числами, нажимаете Enter и получаете результат.&lt;br /&gt;
Например:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt; 2.3*14 – sin(2.1) + tanh(0.2)&lt;br /&gt;
ans =&lt;br /&gt;
31.534166&amp;lt;/source&amp;gt;&lt;br /&gt;
Математические выражения строятся при помощи стандартных&lt;br /&gt;
арифметических операций: «+» – сложение, «-» – вычитание, «*» –&lt;br /&gt;
умножить, «/» – разделить, «^» – возведение в степень. Кроме того,&lt;br /&gt;
вы можете использовать элементарные математические функции,&lt;br /&gt;
только следует помнить, что SciLab разрабатывался за рубежом и&lt;br /&gt;
использует западную нотацию, то есть, tan вместо tg, log вместо ln&lt;br /&gt;
и так далее.&lt;br /&gt;
&lt;br /&gt;
По умолчанию результат имеет семь цифр после запятой, но вы&lt;br /&gt;
можете изменить это при помощи функции форматирования printf,&lt;br /&gt;
синтаксис которой полностью схож с языком С. Например, для того,&lt;br /&gt;
чтобы вывести результат предыдущего выражения с 10 знаками&lt;br /&gt;
после запятой, введите:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt; printf(&amp;quot;%1.10f&amp;quot;,2.3*14 – sin(2.1) + tanh(0.2))&lt;br /&gt;
ans =&lt;br /&gt;
31.5341659536&amp;lt;/source&amp;gt;&lt;br /&gt;
Конечно, использование такой мощной системы в качестве про-&lt;br /&gt;
стого калькулятора бессмысленно. А при организации сложных&lt;br /&gt;
вычислений мы неизбежно приходим к переменным, то есть специ-&lt;br /&gt;
альным именованным ячейками памяти для хранения исходных и&lt;br /&gt;
промежуточных данных, а также результата. Например, пусть нам&lt;br /&gt;
необходимо найти длину и площадь окружности, а также объем и&lt;br /&gt;
площадь поверхности шара по известному радиусу. В этом случае мы&lt;br /&gt;
можем ввести переменную R для хранения значения радиуса:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;R=2; // Значение радиуса&lt;br /&gt;
--&amp;gt;l = 2*%pi*R&lt;br /&gt;
l =&lt;br /&gt;
12.566371&lt;br /&gt;
--&amp;gt;s = %pi*R^2&lt;br /&gt;
s =&lt;br /&gt;
12.566371&lt;br /&gt;
--&amp;gt;S3D = 4*%pi*R^2&lt;br /&gt;
S3D =&lt;br /&gt;
50.265482&lt;br /&gt;
--&amp;gt;V = 4/3*%pi*R^3&lt;br /&gt;
V =&lt;br /&gt;
33.510322&amp;lt;/source&amp;gt;&lt;br /&gt;
Вы могли заметить, что в качестве числа π используется конструк-&lt;br /&gt;
ция, начинающаяся с символа процента. Так записываются систем-&lt;br /&gt;
ные переменные. Рассмотрим наиболее важные из них:&lt;br /&gt;
: %i – мнимая единица ( q1);&lt;br /&gt;
: %e – число e=2.7182818;&lt;br /&gt;
: %inf – машинный символ бесконечности (∞);&lt;br /&gt;
: %NaN – неопределенный результат (0/0, ∞/∞, 1∞ и т. п.);&lt;br /&gt;
: %eps – условный ноль %eps=2.220Е-16.&lt;br /&gt;
Переменные пользователя сохраняют свое значение до конца&lt;br /&gt;
сеанса, либо до тех пор, пока не будут уничтожены командой clear.&lt;br /&gt;
Просмотреть список всех активных переменных можно при помощи&lt;br /&gt;
команды who. Команда whos() выводит более подробный перечень с&lt;br /&gt;
указанием типа переменных (детали см. в справке).&lt;br /&gt;
&lt;br /&gt;
Во время работы&lt;br /&gt;
часто бывает необхо-&lt;br /&gt;
димо сохранить выпол-&lt;br /&gt;
ненные действия и&lt;br /&gt;
результаты в файл для&lt;br /&gt;
дальнейшего исполь-&lt;br /&gt;
зования. Это особен-&lt;br /&gt;
но актуально в связи с&lt;br /&gt;
тем, что, как мы знаем,&lt;br /&gt;
SciLab 4.x не поддер-&lt;br /&gt;
живает буфер обмена и&lt;br /&gt;
прокрутку. Для записи&lt;br /&gt;
рабочей сессии суще-&lt;br /&gt;
ствует команда diary.&lt;br /&gt;
Она принимает путь&lt;br /&gt;
к файлу, например,&lt;br /&gt;
diary('/home/username/&lt;br /&gt;
session1.txt'). В конце,&lt;br /&gt;
следует подать коман-&lt;br /&gt;
ду diary(0), которая&lt;br /&gt;
останавливает запись.&lt;br /&gt;
Тогда все команды и результаты будут сохранены в /home/username/session1.txt в обычном текстовом формате.&lt;br /&gt;
&lt;br /&gt;
Кроме того, SciLab ведет историю введенных команд (но&lt;br /&gt;
не результатов). Ее тоже можно записать в файл командой&lt;br /&gt;
savehistory('путь и имя файла'). Записанная история загружается&lt;br /&gt;
командой loadhistory('путь и имя файла'), стереть ее можно командой resethistory, ну а вывести на экран – командой gethistory. Запись&lt;br /&gt;
истории команд в файл полезна в том случае, когда вы пытаетесь&lt;br /&gt;
создать свою собственную функцию или файл-демонстрацию, но об&lt;br /&gt;
этом поговорим в другой раз.&lt;br /&gt;
&lt;br /&gt;
=== Векторы и матрицы ===&lt;br /&gt;
В Linux существует много продвинутых научных калькуляторов. Так&lt;br /&gt;
чем же SciLab лучше? А тем, что он прекрасно работает с матрицами,&lt;br /&gt;
векторами и вообще массивами чисел. Для того, чтобы создать стро-&lt;br /&gt;
ку (математически – вектор-строку) чисел, вам достаточно ввести их,&lt;br /&gt;
разделяя пробелом или запятой и заключив в квадратные скобки, а&lt;br /&gt;
чтобы ввести столбец (вектор-столбец), необходимо разделять числа&lt;br /&gt;
символом точка с запятой (;):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;Vec_x=[1 2 3 4]&lt;br /&gt;
Vec_x =&lt;br /&gt;
1. 2. 3. 4.&lt;br /&gt;
--&amp;gt;Vec_y=[1;2;3;4]&lt;br /&gt;
Vec_y =&lt;br /&gt;
1.&lt;br /&gt;
2.&lt;br /&gt;
3.&lt;br /&gt;
4.&amp;lt;/source&amp;gt;&lt;br /&gt;
Ввод матрицы происходит по строкам (они разделяются точкой с&lt;br /&gt;
запятой), между элементами строк ставятся запятые или пробелы.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;matr=[1 2 3; 4 5 6; 7 8 9]&lt;br /&gt;
matr =&lt;br /&gt;
1. 2. 3.&lt;br /&gt;
4. 5. 6.&lt;br /&gt;
7. 8. 9.&amp;lt;/source&amp;gt;&lt;br /&gt;
К любому элементу вектора или матрицы можно обратиться&lt;br /&gt;
посредством индекса, заключенного в круглые скобки; если это эле-&lt;br /&gt;
мент матрицы, то индексы разделяются запятой. Например, изменим&lt;br /&gt;
главную диагональ введенной матрицы:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;matr(1,1) = 0;matr(2,2)=0;matr(3,3)=0;&lt;br /&gt;
--&amp;gt;matr&lt;br /&gt;
matr =&lt;br /&gt;
0. 2. 3.&lt;br /&gt;
4. 0. 6.&lt;br /&gt;
7. 8. 0.&amp;lt;/source&amp;gt;&lt;br /&gt;
Вы можете обратиться не только к элементу, но и к строке или&lt;br /&gt;
столбцу, при этом вы должны указать его номер, а на месте второго&lt;br /&gt;
индекса поставить : (двоеточие). Давайте поменяем местами пер-&lt;br /&gt;
вую строку с третьим столбцом. При этом нам придется столкнуться&lt;br /&gt;
еще с одной операцией – транспонированием. Для ее выполнения&lt;br /&gt;
необходимо ввести символ одинарной кавычки рядом с переменной-&lt;br /&gt;
матрицей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;tr=matr(1,:); tc=matr(:,3); // выделяем 1-ю строку и 3-й столбец&lt;br /&gt;
--&amp;gt;matr(1,:)=tc'; matr(:,3)=tr'; // транспонируем и записываем в&lt;br /&gt;
// 1-ю строку элементы 3-го столбца&lt;br /&gt;
// в 3-й столбец элементы 1-ой строки&lt;br /&gt;
--&amp;gt;matr&lt;br /&gt;
matr =&lt;br /&gt;
3. 6. 0.&lt;br /&gt;
4. 0. 2.&lt;br /&gt;
7. 8. 3.&amp;lt;/source&amp;gt;&lt;br /&gt;
Следует помнить и еще об одном правиле: при работе с век-&lt;br /&gt;
торами и матрицами действуют матричные правила выполне-&lt;br /&gt;
ния арифметических действий. Например, умножение векторов&lt;br /&gt;
Vec_x и Vec_y дает разные результаты в зависимости от порядка&lt;br /&gt;
множителей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;Vec_x*Vec_y&lt;br /&gt;
ans =&lt;br /&gt;
30.&lt;br /&gt;
--&amp;gt;Vec_y*Vec_x&lt;br /&gt;
ans =&lt;br /&gt;
1. 2. 3. 4.&lt;br /&gt;
2. 4. 6. 8.&lt;br /&gt;
3. 6. 9. 12.&lt;br /&gt;
4. 8. 12. 16.&amp;lt;/source&amp;gt;&lt;br /&gt;
как и должно быть по правилам матричной алгебры. Для того, чтобы&lt;br /&gt;
выполнить поэлементное арифметическое действие (то есть пере-&lt;br /&gt;
множение не самих векторов, а только их соответствующих элемен-&lt;br /&gt;
тов: первый на первый, второй на второй и т. д.) используется символ&lt;br /&gt;
операции с точкой в начале, при этом перемножаемые векторы долж-&lt;br /&gt;
ны иметь одинаковую размерность:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;Vec_x .* Vec_y&lt;br /&gt;
!--error 9999&lt;br /&gt;
inconsistent element-wise operation&lt;br /&gt;
--&amp;gt;Vec_x .* Vec_y'&lt;br /&gt;
ans =&lt;br /&gt;
1. 4. 9. 16.&amp;lt;/source&amp;gt;&lt;br /&gt;
В первом случае мы пытались выполнить поэлементное умножение строки на столбец и потому была выдана ошибка: размерность&lt;br /&gt;
Vec_x – 1x4, а Vec_y – 4х1. Во втором случае мы транспонировали&lt;br /&gt;
столбец и оба множителя стали одинаковой размерности – 1х4.&lt;br /&gt;
&lt;br /&gt;
Выполним одно из простых действий – решим систему линейных&lt;br /&gt;
уравнений методом обратной матрицы. Пусть дана система:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\left\{\begin{array}{lcc} &lt;br /&gt;
x-2y+z=2 \\ &lt;br /&gt;
2x+y-3z=-1 \\ &lt;br /&gt;
x+3y+z=1 \\ &lt;br /&gt;
\end{array}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
тогда для ее решения нам потребуется подать следующие команды&lt;br /&gt;
(для сокращения выводится только результат):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;A=[1 -2 1; 2 1 -3; 1 3 1];&lt;br /&gt;
--&amp;gt;b = [2; -1; 1];&lt;br /&gt;
--&amp;gt;x = inv(A)*b&lt;br /&gt;
x =&lt;br /&gt;
0.8&lt;br /&gt;
- 0.2&lt;br /&gt;
0.8&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Построение графиков ===&lt;br /&gt;
Вектора и матрицы можно не только вводить вручную, но и фор-&lt;br /&gt;
мировать автоматически, используя конструкцию &amp;lt;начальное&lt;br /&gt;
значение&amp;gt;:&amp;lt;шаг&amp;gt;:&amp;lt;конечное значение&amp;gt;. Например, сформируем век-&lt;br /&gt;
тор из чисел от 1 до 3 с шагом 0.2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;vec=1:0.2:3&lt;br /&gt;
vec =&lt;br /&gt;
1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8 3.&amp;lt;/source&amp;gt;&lt;br /&gt;
Если шаг не указывается, то он принимается равным единице,&lt;br /&gt;
скажем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;vec2=1:3&lt;br /&gt;
vec2 =&lt;br /&gt;
1. 2. 3.&amp;lt;/source&amp;gt;&lt;br /&gt;
Сформированный вектор может использоваться как обычная&lt;br /&gt;
переменная, то есть участвовать в математических операциях и быть&lt;br /&gt;
аргументом функций. В последнем случае получится вектор, каж-&lt;br /&gt;
дый элемент которого есть результат действия функции на элемент&lt;br /&gt;
исходного вектора.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;Y=sin(vec2)&lt;br /&gt;
Y =&lt;br /&gt;
0.8414710 0.9092974 0.1411200&amp;lt;/source&amp;gt;&lt;br /&gt;
Таким образом можно довольно просто создавать таблицы функ-&lt;br /&gt;
ций, а от них два шага и до графика: достаточно просто сгенериро-&lt;br /&gt;
вать вектор значений переменной и подать команду plot2d с указани-&lt;br /&gt;
ем функции или перечня функций, заключенных в квадратные скоб-&lt;br /&gt;
ки и разделенных пробелом. При построении важно помнить, что на&lt;br /&gt;
вход команды plot2d необходимо подавать вектор-столбцы значений&lt;br /&gt;
функций, поэтому автоматически созданный вектор обычно необхо-&lt;br /&gt;
димо транспонировать.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;x=[0:0.1:2*%pi]'; //создаем вектор и транспонируем его&lt;br /&gt;
--&amp;gt;plot2d(x, [sin(x) cos(x) sin(x).*cos(x)]) //строим графики&amp;lt;/source&amp;gt;&lt;br /&gt;
Если не указывать первый параметр (переменная х), то на графи-&lt;br /&gt;
ке по оси х будут отображаться просто порядковые номера значений&lt;br /&gt;
в массиве. Обратите внимание, что для получения третьей функции&lt;br /&gt;
мы использовали поэлементное умножение.&lt;br /&gt;
&lt;br /&gt;
Теперь давайте построим трехмерную поверхность. Для начала&lt;br /&gt;
создадим два вектора с координатами x и y, затем – матрицу зна-&lt;br /&gt;
чений функции, причем здесь очень важен порядок множителей&lt;br /&gt;
(вспомните комментарий выше): первым должен быть столбец (то&lt;br /&gt;
есть любая из переменных), а вторым – строка (транспонированная&lt;br /&gt;
переменная). После того, как мы получили все, что нужно, подаем&lt;br /&gt;
команду plot3d:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;--&amp;gt;x=[0:0.1:2*%pi]';&lt;br /&gt;
--&amp;gt;y=x;&lt;br /&gt;
--&amp;gt;z=sin(4*x)*cos(y'/2);&lt;br /&gt;
--&amp;gt;plot3d(x,y,z)&amp;lt;/source&amp;gt;&lt;br /&gt;
Результат вы можете посмотреть на рисунке.&lt;br /&gt;
&lt;br /&gt;
Хочется заметить, что многие из описываемых команд имеют&lt;br /&gt;
дополнительные параметры, но мы не можем описать здесь их&lt;br /&gt;
синтаксис полностью. Так что, если вам нужна дополнительная&lt;br /&gt;
информация, то пройдитесь по приведенным во врезке ссылкам&lt;br /&gt;
и, конечно же, покопайтесь во встроенной справке. До новых&lt;br /&gt;
встреч!&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>