Методика выполнения задания №1
1. Для решения задачи поиска корней квадратных уравнений создадим два М-файла – файл-функцию для решения квадратного уравнения и файл-сценарий для создания массива корней уравнений при различных значениях коэффициентов a, b и с.
Блок-схема алгоритма решения квадратного уравнения выглядит так, как показано на рисунке 9.2
Этот алгоритм будет реализован в виде файла-функции. Для этого запустите MATLAB. На панели инструментов нажмите Новый М-файл (New M-file). Открывается окно М-файла. Сюда введите операторы, соответствующие решению квадратного уравнения. Назовите функцию korn. Входными аргументами являются коэффициенты a, b, и с, а выходными – корни уравнения х1 и х2. Функция имеет вид:
function [x1,x2]=korn(a,b,c)
%Решение квадратного уравнения
D=b^2-4*a*c
if D>=0
x1=-b+sqrt(D)
x2=-b-sqrt(D)
else
x=’Действительных корней нет’
end
2. Сохраните файл-функцию под именем korn в папке work каталога MATLAB . Для этого нажмите в строке меню Файл – Сохранить как (File – Save As), либо на Панели инструментов нажмите Сохранить (Save). Появляется окно Сохранить как с содержимым папки work (рисунок 9.3).
Рисунок 9.3 – Сохранения М-файла
3. Создайте файл-сценарий для решения задачи формирования массивов X1 и X2 из корней квадратных уравнений при различных значениях коэффициентов. Блок-схема алгоритма решения этой задачи представлена на рисунке 9.4. Предопределенный процесс в этом алгоритме соответствует алгоритму на рисунке 9.2.
Аналогично пункту 1 создайте новый М-файл. Запишите программный код, соответствующий представленному алгоритму:
%Ввод массивов коэффициентов
A=[-1 2 5 8 10 -4 -11 12]
B=[2 -4 12 9 -11 -3 6 10]
C=[4 2 3 -2 -4 7 11 2]
%Формирование массивов корней уравнений
for i=1:8
[X1(i),X2(i)]=korn(A(i),B(i),C(i))
Еnd
4. Запустите на выполнение файл-сценарий. Для этого в строке меню выберите Отладка (Debug) – Сохранить и запустить (Save and Run).Появляется окно сохранения М-файла. Назовите файл (например LAB2) и нажмите Сохранить (Save). Происходит выполнения программы. Результаты отображаются в основном окне MATLAB.
В Рабочей области окна MATLAB отображаются переменные и массивы, введенные в программу и рассчитанные в ней: массивы коэффициентов А, В, С, массивы результатов Х1 и Х2, а также счетчик циклов i (его последнее значение). Щелкнув дважды левой кнопкой мыши по любому массиву или переменной из Рабочей области (Workspace), можно раскрыть их значения в специальном окне Array Editor: (рисунок 9.5).
Рисунок 9.5 – Результаты решения задачи
5. Построение графиков.Построим график синусоиды в командном режиме. Очистите Окно команд (Command Window) и Рабочую область (Workspace) от результатов предыдущих вычислений. Для этого в Окне команд введите команду clc, а в Рабочей области вызовите правой кнопкой контекстное меню и выберите Очистить Рабочую область (Clear Workspace). Теперь зададим интервал изменения аргумента х от 0 до 10с шагом 0.1. Для построения графика достаточно вначале задать вектор х=0:0.1:10, а затем использовать команду построения графиков plot(sin(x)). Результат показан на рис. 1.
Вектор х задает интервал изменения независимой переменной от 0 до 10 с шагом 0.1. Почему взят такой шаг, а не, скажем, 1? Дело в том, что plot строит не истинный график функции sin(x), а лишь заданное числом элементов вектора х число точек. Эти точки затем просто соединяются отрезками прямых, т. е. осуществляется кусочно-линейная интерполяция данных графика. При 100 точках полученная кривая глазом воспринимается как вполне плавная, но при 10-20 точках она будет выглядеть состоящей из отрезков прямых.
6. Добавим на график линии сетки. Линии сетки на график добавляются командой >> grid on. Вид графика изменится (рис.6).
Рисунок 6 – Добавление линий сетки на график
7. На одной координатной плоскости можно построить графики нескольких функций. Добавим к построенному графику функции sin(x). График функции cos(x). График sin(x) сделаем красным с точками в виде шестиугольников, cos(x) – зеленым с ромбами.
Введем команды:
>> y1=sin(x);
>> y2=cos(x);
>> plot(x,y1,x,y2)
>> plot(x,y1,’r-H‘,x,y2,’g-D‘)
>> grid on
Результат представлен на рис. 7.
Рисунок 7 – Два графика на одной координатной плоскости
8. Команды на построение графиков используются в программном коде MATLAB при создании М-файлов. Построите графики зависимости корней квадратного уравнения (Х1 и Х2), от номера набора коэффициентов уравнения.
Для этого откройте файл-сценарий LAB2. Добавьте внутри цикла команду
t(i)=i
Этой командой формируется массив t=[1 2 3 4 5 6 7 8], номеров наборов коэффициентов уравнения ( а. b. c). После цикла введите команды на построение графиков. Программный код М-файла примет следующий вид:
%Ввод массивов коэффициентов
A=[-1 2 5 8 10 -4 -11 12]
B=[2 -4 12 9 -11 -3 6 10]
C=[4 2 3 -2 -4 7 11 2]
%Формирование массивов корней
for i=1:8
[X1(i),X2(i)]=korn(A(i),B(i),C(i));
t(i)=i;
end
%Построение графиков
plot(t,X1,'r-*',t,X2,'b-o')
grid on
%Добавление подписей к осям
xlabel('номер набора коэффициентов')
ylabel('X1 и X2')
%Добавление заголовка
title('Зависмость Х1 и Х2 от номера набора коэффициентов')
9. Запустите файл на выполнение. Происходит решение задачи и появляется окно графика (рис. 8). Теперь отредактируйте график для большей наглядности. Нажмите на панели инструментов иконку Редактировать график («1» на рис. 8). Выделите верхний график, вызовите правой кнопкой контекстное меню, выберите Ширина линии – 2.
Рисунок 8 – Графики зависимости Х1 и Х2 от номера набора коэффициентов t
Добавьте на график надписи и стрелки. Для добавления надписи нажмите иконку А на панели инструментов («2» на рис.8). Теперь вставьте Х1 над красным графиком. Теперь нажмите иконку Вставить стрелку («3» на рис.8) и, зажав левую кнопку мыши, пронтяните стрелку от надписи Х1 к линии графика. Надписи и стрелки можно перетпскивать и поворачивать.
Аналогично отредактируйте второй график.
10. Ознакомимся с методикой построения трехмерных графиков функций , Создайте новый М-файл. Введите следующий программный код.
%Построение графиков поверхности
%Создание матриц для построения графиков
[X,Y]=meshgrid(-8:0.5:8)
[A,B]=meshgrid(-5:0.15:5)
%Расчет функции Z
R=sqrt(X.^2+Y.^2)+eps
Z=sin(R)./R
%Расчет функции С
C=A.^2+B.^2
%Построение графиков поверхностей в 4-х подокнах графического окна
subplot(2,2,1), mesh(X,Y,Z)
subplot(2,2,2), surface(X,Y,Z)
grid on
subplot(2,2,3), mesh(A,B,C)
subplot(2,2,4), plot3(A,B,C,'o')
colormap jet
grid on
Обратите внимание, что при расчете функций используются операции поэлементного возведения в степень и деления. Функция plot3 обеспечивает построения, аналогичные рассмотренным ранее, но со спецификацией стиля линий и точек, соответствующей спецификации команды plot. Графики функций z и с построены с использованием различных функций.
11. Запустите файл на решение, назвав его Graf3D. В результате появляется графическое окно (рис.9).
Рисунок 9 – Графики функций z(x,y) и c(a,b)
12. Отредактируйте графики, аналогично тому, как описано в пункте 9. Для более наглядного отображения графиков используйте функцию вращения графиков. Для этого на панели инструментов нажмите иконку Вращать трехмерно (рис. 9), наведите курсор на интересующий график и, зажав левую кнопку мыши, вращайте график по своему усмотрению.