Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Vychislitelnaya_matematika131016

.doc
Скачиваний:
9
Добавлен:
17.02.2016
Размер:
261.12 Кб
Скачать

>> х=3/7

х=

0,4286

>> 2 * х

ans=

0,8571

Точка с запятой после команды подавляет вывод на экран результатов этой команды:

>> a=5;

>> b=18;

>> a*b

ans=

90

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

Наряду с арифметическими операциями среда Scilab выполняет операции сравнения, результаты которых обозначаются символами 1 (истина) и 0 (ложь):

отношения 'меньше' и 'больше'

>> 3 < 4

ans =

1

>> 3 > 4

ans =

0

отношение 'равняется'

>> 3 == 3

ans=

1

>> 1 == 3

ans=

0

отношение 'не равно'

>> 3~= 1

ans=

1

>> 3 ~= 3

ans=

0.

(значок '~' читается 'тильда'). Обратите внимание, что символ операции сравнения 'равняется', в отличие от символа операции присваивания, обозначается при помощи двух следующих друг за другом знаков '='. Если мы попытаемся использовать один знак '=', среда выдаёт сообщение об ошибке:

>> 3 = 1

??? 3 = 1

Error: The expression to the left of the equals sign is not a valid target for an assignment (Ошибка: Выражение в левой части символа равенства не подходит для присваивания).

Нестрогие неравенства: <= (меньше или равно), >= (больше или равно).

Операция конъюнкции обозначается символом 'амперсанд' (&), вертикальная палочка (|) обозначакт дизъюнкцию, значок 'тильда' (~) - отрицание:

>> ( 3>4 ) & ( 2 > 1)

ans=

0

>> ( 3>4 ) | ( 2 > 1)

ans=

1

>> ~ ( 3>4 )

ans=

0

"Основным типом данных, с которым производится вычисление в среде Scilab являются конечные десятичные дроби, приближающие с заданной точностью произвольные вещественные числа. Последние в общем случае представимы лишь в виде бесконечных десятичных дробей. Можно сказать, что Scilab работает с вещественными числами приближённо...

Если операнды и результаты вычислений являются целыми, то, хотя они и представляются в памяти машины так же, как и дробные числа, визуально в командном окне Scilab они показываются в виде целых чисел" [Мартынов Н.Н., Иванов А.П. Scilab 5.x. Вычисления, визуализация, программирование.-М.: КУДИЦ-ОБРАЗ, 2000.- 336с.; стр. 9-10]

Примеры.

>> 4 + 5

ans=

9

>> a = 7

a=

7

>> b = 6

b=

6

>> a * b

ans=

42

>> c = ans - 3

c=

39

Остаток от деления одного натурального числа на другое вычисляется с помощью операции mod:

>> mod ( 17 , 3 )

ans=

2.

Если остаток от деления равен нулю, то частное отображается на экране в виде целого числа:

>> a = 54;

>> b = 18;

>> a / b

ans=

3.

Для реализации операции целочисленного деления используется функция floor, которая отбрасывает дробную часть десятичной дроби:

>> a = 234;

>> b = 23;

>> floor ( a / b )

ans=

10.

Перечень чисел, заключённый в квадратные скобки на языке среды Scilab обозначает массив. Команда

>> X = [ 3, 5, 12 ]

создаёт массив из трёх элементов, значение первого элемента (элемента с индексом 1) равно 3, значение второго равно 5, значение третьего элемента равно 12. Операция присваивания задаёт имя массива, оно используется для выполнения операций над массивом и его элементами:

>> X ( 1 )

X ( 1 ) =

3

>> X ( 7 ) = sqr ( X ( 1 ))

X ( 7 ) =

9

>> X

X =

3 5 12 0 0 0 9

Команда X ( 1 ) вывела на экран значение первого элемента массива X; выполняя команду X ( 7 ) = sqrt ( X (1)) среда Scilab добавляет к массиву X элементы с индексами 4, 5, 6, 7, возводит значение первого элемента массива X в квадрат и присваивает результат – число 9 – седьмому элементу, элементам с индексами 4, 5, 6 присваиваются нулевые значения.

Если числа, заключённые в квадратные скобки, отделяются друг от друга не запятой, а точкой с запятой, то полученный массив представляет собой вектор-столбец, его элементы выводятся на экран в виде столбца:

>> Y = [ 1; 3; 5; 7 ]

Y =

1

3

5

7

Аргументом функции length служит массив, она возвращает количество его элементов:

>> length ( X )

ans =

3

>> length ( Y )

ans =

4

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

>> A = [ 1, 3; 2, 4; 5, 7 ]

A =

1 3

2 4

3 5

Для завершения работы в среде Scilab наберите в командной строке команду exit (выход) или щёлкните левой кнопкой мыши по системной кнопке 'закрыть' окна среды Scilab.

Пакет Scilab требует значительного количества вычислительных и информационных ресурсов, так что его обычно устанавливают на сервере. Пользователь получает доступ к нему с машины-клиента, как правило, это персональная ЭВМ. Машинное время сервера стоит очень дорого, поэтому работа пользователя в интерактивном режиме малоэффективна. Команды среды Scilab записывают в специальный текстовый файл с расширением «m». Такой файл называется командным файлом, сценарием или m-файлом. Он должен находиться в активной директории среды Scilab. Имя активной директории выводит на экран команда cd без аргументов, которая запускается в командной строке среды Scilab.

Мы будем создавать командные файлы среды Scilab в текстовом редакторе операционной системы Windows, который называется блокнот. Текстовый процессор Word для этой цели не подходит так как документ, созданный в среде Word содержит служебную информацию, её среда Scilab не понимает. Обычно пользователь запускает блокнот, щелкая правой кнопкой мыши по экрану и выбирая в появившемся меню пункт Создать/Текстовый документ.

Можно также запустить блокнот с помощью команды

Рабочий стол/Пуск/программы/Стандартные/ Блокнот

или в окне сеанса MS DOS командой

notepad.exe имя_файла.

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

УЗНАЙТЕ У ПРЕПОДАВАТЕЛЯ ИМЯ ТОЙ ДИРЕКТОРИИ, В КОТОРОЙ СТУДЕНТАМ ВАШЕЙ ГРУППЫ РАЗРЕШАЕТСЯ РАБОТАТЬ С M-ФАЙЛАМИ, ЗАПУСТИТЕ ЭМУЛЯТОР КОМАНДНОЙ СТРОКИ И СОЗДАЙТЕ В НЕЙ ПОДДИРЕКТОРИЮ, НАЗВАНИЕ КОТОРОЙ СОВПАДАЕТ С ВАШЕЙ ФАМИЛИЕЙ, НАПРИМЕР, IVANOV. ЭТО БУДЕТ ВАША ЛИЧНАЯ ДИРЕКТОРИЯ. ПЕРЕХОД В ДРУГИЕ ДИРЕКТОРИИ ПРИВЕДЁТ К СНИЖЕНИЮ ОЦЕНКИ ЗА ЛАБОРАТОРНУЮ РАБОТУ!!!

Создайте файл myfile.m, содержащий следующие команды:

format long

3/7

format short

3/7

Сохраните файл myfile.m в папке, которую укажет преподаватель. После этого сделайте эту папку активной директорией среды Scilab.

Например, команда среды Scilab

>> cd

выводит на экран

C:\Documents and Settings\Scilab\work,

а полное имя папки, указанной преподавателем – D:\mygroup\mydir. Наберите в командной строке среды Scilab команду

cd D:\mygroup\mydir.

Если активна директория C:\Documents and Settings\Scilab\work, а полное имя папки, указанной преподавателем - C:\Documents and settings\users\mygroup\Ivanov, то наберите в командной строке среды Scilab команду

cd ..\..\users\mygroup\Ivanov.

Можно считать, что, команда cd в нашем случае выполняет переход в родительскую директорию директории work - это директория Scilab, затем переходит в её родительскую директорию ( Documents and Settings), после чего выполняется переход последовательно в директории users, mygroup, Ivanov. На самом деле никаких переходов система не делает - если директория C:\Documents and Settings\Scilab\work является активной, то конструкция

..\..\users\mygroup\Ivanov

представляет собой синоним имени C:\Documents and settings\users\mygroup\Ivanov. При другой конфигурации дерева директорий следует изменить аргумент команды cd. Не следует использовать в качестве аргумента команды cd имена папок, состоящие из нескольких слов, поскольку среда неверно их интерпретирует. Если Вы сделали ошибку в имени директории, то в командной строке среды Scilab появится сообщение об ошибке. Например, пользователь набирает имя несуществующей директории:

>> cd abcd

??? Error using ==> cd

cannot CD to abcd ( Name is nonexistent or not a directory)

После смены активной директории всегда проверяйте, корректность выполнения команды. Наберите в командной строке среды Scilab команду cd без аргументов - на экране должно появиться имя новой активной директории. Для того, чтобы запустить m-файл, надо набрать его имя ( без расширения m) в командной строке среды Scilab:

>> myfile

Если Вы всё сделали правильно, то на экране появится десятичное представление дроби 3/7 с разной степенью точности.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220400 – Управление в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №1

ПО ДИСЦИПЛИНЕ "ЧИСЛЕННЫЕ МЕТОДЫ"

ТЕМА. РЕШЕНИЕ ЛИНЕЙНЫХ, АЛГЕБРАИЧЕСКИХ И ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2013

Цель лабораторной работы №1.

Овладение навыками решения алгебраических и трансцендентных уравнений в среде Scilab.

Задание.

    1. Составьте и решите квадратное уравнение в среде Scilab.

    2. Составьте и решите кубическое уравнение в среде Scilab.

    3. Составьте и решите трансцендентное уравнение в среде Scilab.

РЕШЕНИЕ КВАДРАТНОГО УРАВНЕНИЯ В СРЕДЕ Scilab

Пример. Требуется решить квадратное уравнение x2 – 5 x + 6 = 0.

Решение. Запускаем среду Scilab. В командной строке вызываем функцию roots:

>> roots ( [ 1, -5, 6 ] )

Аргументом функции roots служит массив-строка, образованный коэффициентами многочлена.

На экране появляется ответ:

ans=

2

3

Задание. Составьте и решите квадратные уравнения:

с двумя отрицательными корнями;

с двумя корнями разных знаков;

с совпадающими положительными корнями;

с совпадающими отрицательными корнями;

с комплексными корнями.

Напомним, что если x1, x2 – корни уравнения x2 + p x + q = 0, то x1+ x2 = - p x1 x2 = q (теорема Виета). Пример квадратного уравнения с мнимыми корнями: x2 + 1 = 0.

Задание. Приведите пример системы, математическая модель которой представляет собой квадратное уравнение. Исследуйте эту модель аналитическими методами. Решите уравнение в среде Scilab.

РЕШЕНИЕ КУБИЧЕСКОГО УРАВНЕНИЯ В СРЕДЕ Scilab

Задание. Составьте и решите несколько кубических уравнений.

Задание. Приведите пример системы, математическая модель которой представляет собой кубическое уравнение. Исследуйте эту модель аналитическими методами. Решите уравнение в среде Scilab.

РЕШЕНИЕ ТРАНСЦЕНДЕНТНОГО УРАВНЕНИЯ В СРЕДЕ Scilab

Пример. Требуется решить уравнение exp ( x ) = 2

Решение. Преобразуем уравнение так, чтобы в его правой части стоял 0: exp ( x ) - 2 = 0. Запускаем среду Scilab. В командной строке вызываем функцию fzero:

>> fzero ( @(x) exp ( x ) - 2, 0)

Первый аргумент функции fzero описывает функцию, стоящую в левой части уравнения ( exp ( x ) - 2 ) и называет её аргумент (это делает конструкция @(x)). Второй аргумент функции fzero – начальное приближение. Метод решения уравнения похож на известный метод касательных, решение представляет собой результат последовательности итераций. На экране появляется ответ:

ans=

0.6931

(это приближённое значение натурального логарифма числа 2). Выбирая в качестве начальных приближений числа 1, 5, 10, 100 мы получим тот же ответ. Если ввести

>> fzero(@(x) exp ( x ) - 2, 1000)

то среда сообщает:

Error using ==> fzero

Function value at starting guess must be finite and real:

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

Среда воспринимает значение exp (1000) как бесконечное.

Задание. Составьте и решите с помощью функции fzero несколько квадратных уравнений. Опишите поведение среды при различных значениях начального приближения.

Задание Оцените наименьшее значение числа k для которого уравнение exp ( x ) = k x. имеет решение. Объясните вашу стратегию поиска числа k.

Если известно, что значения функции f ( x ) в точках a, b имеют разные знаки, то корень уравнения f ( x ) = 0, лежащий между a и b находят с помощью вызова функции fzero, вторым аргументом которой служит массив [ a, b].

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

Задание. Приведите пример системы, математическая модель которой представляет собой трансцендентное уравнение. Исследуйте эту модель аналитическими методами. Решите уравнение в среде Scilab.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220400 – Управление в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ №2

ПО ДИСЦИПЛИНЕ "ЧИСЛЕННЫЕ МЕТОДЫ"

ТЕМА. ПРИБЛИЖЁННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2013

Цель лабораторной работы №2.

Овладение навыками исследования детерминированных систем с помощью обыкновенных дифференциальных уравнений в среде Scilab.

Пример. Исследование падения частицы под действием постоянной силы тяжести в безвоздушном пространстве.

Задание

Частица (материальная точка) падает вертикально вниз в безвоздушном пространстве под действием постоянной силы тяжести. Постройте и исследуйте математическую модель системы.

Решение задачи

Система состоит из частицы, падающей в безвоздушном пространстве. На неё действует сила притяжения Земли.

Выберем систему координат так, чтобы плоскость Oxy совпадала с поверхностью Земли, ось Oz была направлена вертикально вверх.

Состояние системы в момент времени t описывается её скоростью v ( t ).

Параметры системы:

m – масса частицы;

    1. g – ускорение свободного падения.

    2. Начальное значение: скорость частицы в момент времени t = 0 равна v0.

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

    4. m dv / dt = - m g (1)

    1. (знак 'минус' в правой части указывает, что сила тяжести направлена вниз). Преобразуем уравнение (1) в нормальную форму:

dv / dt = - g (2)

Примечание. Нормальная форма дифференциального уравнения первого порядка имеет вид: dy / dt = f ( t, y ), где y = y ( t ) - неизвестная функция аргумента t.

Дифференциальное уравнение (2) вместе с начальным условием v ( 0 ) = v0 образует задачу Коши:

dv / dt = - g

v ( 0 ) = v0 (3)

    1. Решение задачи Коши в среде Scilab.

    2. Присвоим параметрам и начальным значениям, входящим в уравнения и начальные условия, следующие числовые значения:

    3. >> g = 9.82 % м/с2

    4. >> v0 = 1 % м/с

    5. Примечание. Знак '%' отделяет команду от комментария.

    6. Для решения задачи Коши вызовем в командной строке среды Scilab функцию ode45:

    7. >> ode45 (@(t, v) - g, [ 0, 20 ], v0)

    1. Первый аргумент функции ode45 задаёт функцию, стоящую в правой части дифференциального уравнениия ( f ( t, v ) = - g ) и указывает её аргументы – t и v. В нашем случае независимая переменная t и неизвестная функция v не входят явно в правую часть дифференциального уравнения. Второй аргумент функции ode45 задаёт интервал, на котором среда должна искать значения неизвестной функции, третий аргумент – значение неизвестной функции в левом конце интервала.

На экране должен появиться график изменения скорости частицы со временем.

Решите задачу, изменяя параметры системы и начальное условие.

Вывод

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

Исследование движения шарика, вдоль вертикальной оси под действием постоянной силы тяжести.

    1. Задание. Шарик двигается вдоль вертикальной оси Oz под действием постоянной силы тяжести, сила сопротивления воздуха пропорциональна скорости шарика. Постройте и исследуйте математическую модель системы.

    2. Силу сопротивления воздуха вычисляем по формуле Стокса:

    1. F = - 6 π η r v,

где:

π – число пи, в среде Scilab оно обозначается символом pi;

η – коэффициент внутреннего трения (вязкости) среды;

r – радиус шарика;

    1. v – скорость шарика;

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

Коэффициент вязкости воздуха составляет 17.2 · 10-6 Па · с.

    1. Масса шарика равна 4 π r3 ρ / 3, где ρ – плотность материала, из которого изготовлен шарик. Плотность берёзы составляет 700 кг/м3, плотность алюминия - 2700 кг/м3, плотность стали - 7800 кг/м3.

    2. Исследование движения шарика в воде вдоль вертикальной оси под действием постоянной силы тяжести

    3. Задание. Шарик двигается в воде вдоль вертикальной оси Oz под действием постоянной силы тяжести, сила сопротивления воды пропорциональна скорости шарика. Постройте и исследуйте математическую модель системы.

Коэффициент вязкости воды равен 0.00105 Па · с.

На шарик действует сила Архимеда, выталкивающая его из воды, она равна 4 π r3 ρ1 g / 3, g – ускорение свободного падения, ρ1 - плотность воды, ρ1 = 1000 кг/м3.

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

    1. Задание. Частица (материальная точка) двигается без трения вдоль горизонтальной оси Ox под действием возвращающей силы, пропорциональной расстоянию частицы от начала координат. Постройте и исследуйте математическую модель системы.

Состояние системы в момент времени t описывается её абсциссой x = x ( t ), величина действующей на неё возвращающей силы равна c x, c – числовой коэффициент. В силу второго закона Ньютона

m d2 x / dt2 = - c x

(знак минус указывает, что возвращающая сила направлена от частицы к началу координат). Чтобы преобразовать это уравнение в нормальную форму используем переменные x1, x2:

    1. x1 обозначает абсциссу частицы, а x2 – её скорость. Уравнение движения частицы превращается в систему уравнений:

dx1 / dt = x2

    1. dx2 / dt = - c x1 / m.

Правую часть системы уравнений можно представить в виде вектора-столбца. Вызываем функцию ode45:

>> ode45 (@( t, x ) [ x ( 2 ); - c x ( 1 ) / m ], [ 0, 20 ], [ x0, v0 ])

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

>> [ T, x ] = ode45 (@( t, x ) [ x ( 2 ); - c x ( 1 ) / m ], [ 0, 20 ], [ x0, v0 ]);

>> plot ( T, x ( : , 1 ))

    1. график скорости строит другая команда:

>> plot ( T, x ( : , 2 ))

Нелинейное уравнение Ван-дер-Поля

Задание. Исследуйте протекание процесса, который описывается нелинейным уравнением Ван-дер-Поля

d2y / dt2 = - y + k ( 1 – y2 ) dy / dt

    1. y = y ( t ) - функция, характеризующая состояние системы, k – параметр.

    2. Определите при каких значениях параметра k решение уравнения Ван-дер-Поля является периодическим. Для решения уравнения Ван-дер-Поля лучше воспользоваться функцией ode15s.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

«тюменский государственный нефтегазовый университет»

ИНСТИТУТ КИБЕРНЕТИКИ ИНФОРМАТИКИ И СВЯЗИ

Кафедра кибернетических систем

Направление 220400 – Управление в технических системах

ОТЧЁТ О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ № 3

ПО ДИСЦИПЛИНЕ "ЧИСЛЕННЫЕ МЕТОДЫ"

ТЕМА. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ

Выполнил Иванов А. Б., группа ....

___________

Проверил Ковалёв П. И.

Тюмень 2013

Цель лабораторной работы № 3.

Овладение навыками решения алгебраических и трансцендентных уравнений в среде Scilab.

Задание.

    1. Составьте и решите систему линейных уравнений среде Scilab.

РЕШЕНИЕ СИСТЕМЫ ЛИНЕЙНЫХ УРАВНЕНИЙ В СРЕДЕ Scilab

Решение системы линейных уравнений с невырожденной матрицей системы в среде Scilab

    1. Пример. Чтобы решить систему 3-х линейных уравнений с тремя неизвестными:

2 x + 4 y + 5 z = 4

4 x + 6 y + 8 z = 9

7 x + y + 6 z = 6

введём в командной строке среды Scilab следующие команды:

>> A = [ 2, 4, 5; 4, 6, 8; 7, 1, 6 ]

(переменной A присвоено значение матрицы системы)

>> B = [ 4; 9; 6 ]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]