Лабораторная работа по "Программированию"

Автор: Пользователь скрыл имя, 04 Декабря 2010 в 14:00, лабораторная работа

Описание работы

ЦЕЛЬ РАБОТЫ: Приобрести начальные навыки работы в среде Matlab. Изучить команды управления средой Matlab. Изучить служебные переменные и константы.

Работа содержит 1 файл

лаба1.docx

— 68.52 Кб (Скачать)

ЦЕЛЬ  РАБОТЫ: Приобрести начальные навыки  работы в среде Matlab. Изучить команды управления средой Matlab. Изучить служебные переменные и константы. 

ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ  

1.  Управление рабочей  средой

1.1. Произвольно задать несколько переменных. Выполнить несколько простых математических операций с заданными переменными и без них. Результат в протокол. Привести список служебных переменных и констант, их значения (там, где это возможно), объяснить их предназначение. Какие служебных переменные и констант можно использовать в вычислениях, а какие нет? В протоколе привести примеры с пояснениями.

1.2. Выполнить удаление некоторых переменных, а потом полную очистку, выполните очистку консоли. В протоколе привести команды с описанием, которые мы используем. Какие еще служебные команды для управлении рабочей областью мы знаем?

1.3. Получить справочную информацию по произвольной тригонометриче-

ской функции. (В протокол). 

2. Задание матриц

2.1. Задать произвольную скалярную переменную, вектор и матрицу явным указанием всех элементов.

2.2. Задать произвольную матрицу с помощью одной из команд: (ones, eye, zeros, magiс, rand, randn .). Выборочно модифицировать часть элементов с помощью непосредственного редактировании я рабочей области. В протокол - результаты и описание выбранной команды.

    1. . Задать матрицу путем соединения других матриц.

2.4. Выполнить произвольные простые арифметические операции с матрицами. Результат в протокол.

3. Работа с переменными, матрицами и построение графиков

3.1. Исследовать характеристики связанного контура с помощью Matlab (данные взять из задания РГР по курсу «Алгоритмические языки программирования»). Показать эффективность и быстродействие работы в Matlab, по сравнению с написанием на языке С или расчета в автоматизированной среде расчетов MathCAD.   

РАБОТА  В ЛАБОРАТОРИИ

1.1. Зададим 2 переменные

>> a=10

a =

    10

>> b=5

b =

     5

Сделаем пару простых арифметических действий

>> a+b

ans =

    15

>> c=a*b

c =

    50

Сделаем арифметическое действие без использования  переменных

>> 9/3

ans =

     3

Список  служебных переменных:

  1. ans — результат выполнения последней операции.
  2. Computer — возвращает строку с информацией о типе компьютера, на котором установлена система MATLAB.
  3. eps — возвращает интервал между числом 1.0 и следующим ближайшим числом с плавающей запятой, которое воспринимается как отличное от 1.0.
  4. Inf — возвращает представление положительной бесконечности для машинной арифметики.
  5. NaN — возвращает представление для нечисловых величин.
  6. pi — число р.
  7. realmax — возвращает самое большое число в формате с плавающей запятой, соответствующее конкретному компьютеру.
  8. realmin — возвращает наименьшее нормализованное положительное число в формате с плавающей запятой.
 

1.2 .  Удалим некоторые переменные 

>> clear с

>> clear a

Сделаем полную очистку переменных

>> clear all

Очистим командное окно

>> clc 

Пояснения:

clc – очистка командной строки от выполненных операций

clear – удаление переменных (all -  все , переменная – удалить одну переменную)

Управлять рабочей областью можно через меню Edit. 

1.3.  Получим справку о тригонометрической  функции

>> help atan 

2.1 Зададим скаляр

>> a=10

a =

    10

Зададим матрицу 

>> a=[1 3 ; 1 2]

a =

     1     3

     1     2

Зададим вектор строку

>> b=[1 2 3 4]

b =

     1     2     3     4

2.2. Зададим матрицу, у которой по диагонали все единицы, с помощью команды eye

>> eye(4,4)

ans =

     1     0     0     0

     0     1     0     0

     0     0     1     0

     0     0     0     1

Поэкспериментируем  с редактированием матрицы

1) Заменим  все элементы 2-го столбца на 5-ки

>> ans(:,2)=5

ans =

     1     5     0     0

     0     5     0     0

     0     5     1     0

     0     5     0     1

2) Удалим первую строку

>> ans(1,:)=[] 

ans = 

     0     5     0     0

     0     5     1     0

     0     5     0     1

3) Запишем  в 1 строку  со второго столбца все 4-ки

>> ans(1,2:end)=4

ans =

     1     4     4     4

     0     1     0     0

     0     0     1     0

     0     0     0     1 

2.3 Зададим матрицу, путем соединения других

>> a=[ans , ans]

a =

     1     4     4     4     1     4     4     4

     0     1     0     0     0     1     0     0

     0     0     1     0     0     0     1     0

     0     0     0     1     0     0     0     1 

2.4 Выполним  арифметические действия над  матрицами

>> b=rand(2,2);

>> a=rand(2,2);

>> a+b

ans =

    0.3278    0.5742

    1.3963    1.1826

>> a*b

ans =

    0.2142    0.2462

    0.4497    0.5546 

3.1.  Исследуем характеристики связанного контура с помощью Matlab.  

     % Лабораторная работа №1 

     % ---------------------------------------------------------------

     % 1. Расчет аналитических выражений 

     % Зададим данные для расчета

     Csv=70*10^-9;

     L1=500*10^-6;

     L2=L1;

     C1=8*10^-9;

     C2=C1;

     R1=11;

     R2=R1;

     C=C1;

     R=R1;

     ksi=(-4:0.5:4);

     % Определим общую емкость контура

     Ck=(C*Csv)/(C+Csv);

     % Определим общую индуктивность  контура

     Lk=L1;

     % Определим добротность контура

     Q=1/R*sqrt(Lk/Ck);

     % Найдем резонансную частоту

     w0=1/sqrt(Lk*Ck);

     % Определим коэффициент связи

     Ksv=sqrt(C1^2/(C1+Csv)^2);

     % Рассчитаем фактор связи

     x=Ksv*Q;

     % Выражение расчета АЧХ

     ACH=2*x./sqrt((1+x^2-ksi.^2).^2+4*ksi.^2);

     % Выражение расчета ФЧХ

     FCH=pi/2-atan(2*ksi./(1+x^2-ksi.^2));

      % ---------------------------------------------------------------

     % 2. Расчет связанных контуров

     % Найдем граничное значение обобщенной  растройки

     ksigr3db=sqrt(x^2+2*x-1);

     %Определим  полосу пропускания

     d2w=w0/Q;

     % Определим коэффициент прямогульности

     Kp=sqrt(200*x/(x^2+2*x-1));

     % Определим элемент связи С при котором фактор связи хи=1 и хи=2,41

     Csv1=C1*Q/1-C1;

     Csv241=C1*Q/2.41-C1;

     % Запишем аналитическое выражение   АЧХ

     % Для хи=1 (Граничная АЧХ)

     ACH1=2./sqrt((2-ksi.^2).^2+4*ksi.^2);

     % Для хи=2.41 (Критическая АЧХ)

     ACH241=4.82./sqrt((6.80-ksi.^2).^2+4*ksi.^2);

     % Запишем аналитическое выражение  ФЧХ

     % Для хи=1 (Граничная ФЧХ)

     FCH1=pi/2-atan(2*ksi./(2-ksi.^2));

     % Для хи=2.41 (Граничная ФЧХ)

     FCH241=pi/2-atan(2*ksi./(6.80-ksi.^2));

  % ---------------------------------------------------------------

     % 3. Построение графиков (Я сделал  на одном, для наглядности)

  plot( ksi ,FCH1 , ksi , FCH241 , ksi , FCH)

     title('Графики ФЧХ')

     xlabel('ksi')

  % Графики АЧХ

  figure, plot( ksi ,ACH , ksi , ACH1 , ksi , ACH241 )

     title('Графики АЧХ')

     xlabel('ksi') 

Контрольный пример:

Приведем  графики ФЧХ, рассчитанные по формулам приведенным выше:

 
 
 
 
 
 
 
 
 
 
 
 

Рисунок 1 – графики ФЧХ

Приведем  графики АЧХ, рассчитанные по формулам приведенным выше:

 
 
 
 
 
 
 
 
 
 
 
 

Рисунок 2 – графики АЧХ 

ВЫВОД: Я приобрел начальные навыки  работы в среде Matlab. Изучил команды управления средой Matlab. Изучил служебные переменные и константы.

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

Информация о работе Лабораторная работа по "Программированию"