Главная страница
Навигация по странице:

  • Цель работы

  • Условный оператор if

  • Оператор цикла while

  • Оператор цикла for

  • ЛР1_отчёт_НовохатскийАВ_0201. Министерство образования российской федерации


    Скачать 66 Kb.
    НазваниеМинистерство образования российской федерации
    АнкорLR_MATLAB_1SEM_LETI
    Дата14.09.2021
    Размер66 Kb.
    Формат файлаdoc
    Имя файлаЛР1_отчёт_НовохатскийАВ_0201.doc
    ТипОтчет
    #231865


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

    Санкт-Петербургский государственный электротехнический
    университет "ЛЭТИ"

    Факультет электроники
    Кафедра радиотехнической электроники

    "Введение в MATLAB "

    ОТЧЕТ
    к лабораторной работе по дисциплине "Информатика"

    Преподаватель Шевченко С.А.

    Студент гр.0201 Новохатский А.В.

    Санкт-Петербург
    2021

    Цель работы: освоение базовых операторов и отладка программ в среде ко-

    нечного пользователя Матлаб.

    Основные теоретические положения.
    В Матлаб существуют системные переменные, которые можно использовать в математических выражениях:

    - ans - результат последней операции без знака присваивания;

    - i, j - мнимая единица;

    - pi - число π (3.141592653589793);

    - inf - машинный символ бесконечности (∞);

    - NaN - неопределенный результат (0/0, ∞/∞, 1∞ и т.п.);

    - realmin - наименьшее число с плавающей точкой (2.2251е-308);

    - realmax - наибольшее число с плавающей точкой (1.7977е+308).

    Любая переменная до использования в формулах и выражениях должна быть определена. Для определения переменной необходимо набрать ее имя, символ «=» и значение переменной. Здесь знак равенства – это оператор присваивания, действие которого не отличается от других языков программирования.

    Массивы

    Массив - множественный тип данных, состоящий из фиксированного числа элементов. Как и любой другой переменной, массиву должно быть присвоено имя. Переменную, представляющую собой просто список данных, называют одномерным массивом или вектором. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом. Если возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, то необходимо использовать двумерные массивы (матрицы). Для доступа к данным, хранящимся в таком массиве, необходимо указать имя массива и два индекса: первый должен соответствовать номеру строки, а второй номеру столбца, в которых хранится необходимый элемент.

    Условный оператор if

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

    Например, требуется определить, содержит ли некоторая переменная arg положительное или отрицательное число и вывести соответствующее сообщение на экран. Для этого можно воспользоваться оператором if (если), который и выполняет подобные проверки. Оператор if-end if end Если значение параметра «выражение» соответствует значению «истинно», то выполняются операторы, иначе они пропускаются программой. Следует отметить, что «выражение» является условным выражением, в котором выполняется проверка некоторого условия. В таблице ниже представлены варианты простых логических выражений оператора if.

    Для реализации составных условий в MatLab используются логические операторы:

    & - логическое И

    | - логическое ИЛИ

    - логическое НЕ

    Оператор цикла while

    Язык программирования MatLab имеет два оператора цикла: while и for. while end Здесь означает условное выражение подобное тому, которое применяется в операторе if, и цикл while работает до тех пор, пока это условие истинно. Если условие будет ложным до начала выполнения цикла, то операторы, входящие в цикл, не будут выполнены ни разу. В операторе while можно записывать такие же условия, что и в условном операторе if.

    Оператор цикла for

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

    Упражнение 1.

    >> a=2.3

    a =

    2.3000

    >> b=-34.7

    b =

    -34.7000

    >> x=1

    x =

    1

    >> y=2

    y =

    2

    >> z=(x+y)-a/b

    z =

    3.0663

    >> h="мама мыла раму"

    h =

    "мама мыла раму"

    z = 2.9337

    Упражнение 2.

    >> 25.7-14.6

    ans =

    11.1000

    >> 2*ans

    ans =

    22.2000

    >> x=ans/2

    x =

    11.1000
    Упражнение 3.

    Листинг:

    >> ABC=1;

    >> abc=2;

    >> Abc=3;

    >> aBc=4;

    >> x=ABC+abc+Abc+aBc
    x = 10
    >> y=ABC*abc*Abc*aBc
    y = 24
    Упражнение 4.

    Листинг:

    >> X=-3.5:1.5:4.5
    X = -3.5000 -2.0000 -0.5000 1.0000 2.5000 4.0000
    >> Y=sin(X/2)
    Y = -0.9840 -0.8415 -0.2474 0.4794 0.9490 0.9093
    >> A=0:5
    A = 0 1 2 3 4 5
    Упражнение 5.

    Листинг:

    >> V=[1,2,3,2,1]

    V = 1 2 3 2 1
    >> W=[1.1,2.3,-0.1,5.88]
    W = 1.1000 2.3000 -0.1000 5.8800
    >> X=[1;2;3]
    X =

    1

    2

    3
    >> W(1)+2*W(3)
    ans = 0.9000
    Упражнение 6.

    Листинг:

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

    A =
    1 2 3

    4 5 6

    7 8 9
    >> (A(1,2)^A(2,2))/A(3,3)
    ans = 3.5556
    Упражнение 7.

    Листинг:

    X = input ('введите Х');

    if X == 0

    signX = 0;

    end

    if X > 0

    signX = +1;

    end

    if X < 0

    signX = -1;

    end

    disp(X);

    disp(signX);
    7.1

    введите Х 5

    5
    1

    7.2

    введите Х -3

    -3
    -1

    7.3
    введите Х0

    0
    0
    Упражнение 8.

    Листинг:

    X = input ('введите Х');

    if X == 0

    signX = 0;

    end

    if X > 0

    signX = +1;

    else signX = -1;

    end

    disp(X);

    disp(signX);

    8.1

    введите Х 5

    5
    1

    8.2

    введите Х -3

    -3
    -1

    8.3
    введите Х0

    0
    0


    Упражнение 9.

    Листинг:

    X = input ('введите Х');

    if X == 0

    signX = 0;

    else if X > 0

    signX = +1;

    else signX = -1;

    end

    disp(X);

    disp(signX);
    9.1

    введите Х 5

    5
    1

    9.2

    введите Х -3

    -3
    -1

    9.3
    введите Х0

    0
    0
    Упражнение 10.

    Листинг:

    X = input ('введите Х');

    if (X > 0) && (X < 2)

    valueX='TRUE';

    else valueX='FALSE';

    end

    disp(X);

    disp(valueX);
    введите Х 5

    5
    FALSE

    введите Х 1

    1
    TRUE
    Упражнение 11.

    Листинг:

    X = input ('введите Х');

    if X < 0 | X > 2

    valueX='TRUE';

    else valueX='FALSE';

    end

    disp(X);

    disp(valueX);
    введите Х 5

    5
    TRUE

    введите Х 1

    1
    FALSE
    Упражнение 12.

    Листинг:

    S = 0;

    i = 0;

    while i <= 20 && S < 20

    S = S+i;

    i = i+1;

    end

    if S > 20

    valueX = 'FALSE';

    else valueX = 'TRUE';

    end

    disp (['S= ' num2str(S)]);

    disp (['i= ' num2str(i)]);

    disp (['valueX= ' num2str(valueX)]);
    S= 21

    i= 7

    valueX= FALSE
    Упражнение 13.

    Листинг:

    n = input('vvedite kolichestvo chisel v vektore ');

    A = [ ];

    m = -9999999999999;

    k = 0;

    dx = 1;

    for i=1:dx:n

    A(i) = input('vvedite chislo v vektor ');

    if A(i) > m

    m = A(i);

    k = i;

    end

    end

    disp(['naibolshee chislo ' num2str(m)]);

    disp(['nomer elementa ' num2str(k)]);
    vvedite kolichestvo chisel v vektore 4

    vvedite chislo v vektor 3

    vvedite chislo v vektor 6

    vvedite chislo v vektor 5

    vvedite chislo v vektor 3

    naibolshee chislo 6

    nomer elementa 2
    Упражнение 14.

    Программа:

    array_1D=1:2:15;

    array_1d=[1 2 3 4;5 6 7 8;9 10 11 12] %2array_1d=[1 2 3 4;5 6 7 8;9 10 11 12]

    x=-pi:1,e-2:2*pi;

    y1= x.^2; y2=x;

    for ii=1:1,2:5

    if ii>2

    disp(ii)

    elseif ii = 3

    j=ii-1

    end

    end

    NN=1;

    while Nn<100

    NN=NN+1;

    end

    for phi_0=0:0.1:pi %for phi_0=0:0,1:pi

    x = -2*pi: 2e-2: 2*pi;

    u = sin(x-phi_0)

    end

    Упражнение 15.

    Программа:

    %Определить какие из функций

    %y1(x)= x*x-1 %y2(x)= sqrt(x) %y3(x)= cos(x)

    % пересекаются на интервале [0.5;2]

    clear;

    close all;

    clc;

    x=0,5;

    shethic=0; % счетчик корней

    cross=0;

    razn2=0;

    dx=2;

    while x <= 2

    razn1=cos(x)-sqrt(x); % корень уравнения cos(x)=sqrt(x)

    if razn2*razn1 ==0 %if razn2*razn1 <0

    shethic=shethic+1;

    end

    x=x+dx; % шаг цикла

    razn2=razn1;

    end

    if shethic>0

    disp('cos(x) и sqrt(x) пересекаются ');

    end

    cross=cross+ shethic;

    shethic=0;

    razn2=0; % обнуляем переменные

    x=0.5;

    while x <= 2

    razn1=cos(x)-x*x+1; % корень уравнения cos(x)=x*x+1

    if razn2*razn1 ==0 %if razn2*razn1 <0

    shethic=shethic+1;

    end

    x=x+dx;

    razn2=razn1;

    end

    if shethic>0

    disp('cos(x) и x*x-1 пересекаются ');

    end

    cross=cross+ shethic;

    shethic=0;

    razn2=0;% обнуляем переменные

    x=0.5;

    while x <= 2

    razn1=sqrt(x)-x*x+1; % корень уравнения sqrt(x)=x*x+1

    if razn2*razn1 ==0 %if razn2*razn1 <0

    shethic=shethic+1;

    end

    x=x+dx;

    razn2=razn1;

    end

    if shethic>0

    disp('sqrt(x) и x*x-1 пересекаются');

    end

    cross=cross+ shethic;

    disp('cross');disp(cross);

    x = 0.5:0.0001:2; % шаг и интервал

    y = cos(x);

    y2 = pow2(x) -1;

    y3 = sqrt(x);

    plot(x,y,x,y2,x,y3)% функция построения графика
    Упражнение 16.

    Программа:

    %Определить какие из функций

    %y1(x)= x*x-1 %y2(x)= sqrt(x) %y3(x)= cos(x)

    % пересекаются на интервале [0.5;2]

    clear;

    close all;

    clc;

    x=0.5;

    shethic=0; % счетчик корней

    cross=0;

    razn2=0;

    dx=2; % шаг менять нельзя!

    while x <= 2

    razn1=cos(x)-sqrt(x); % корень уравнения cos(x)=sqrt(x)

    if razn2*razn1 ==0 %if razn2*razn1 <0

    shethic=shethic+1;

    end

    x=x+dx; % шаг цикла

    razn2=razn1;

    end

    if shethic>0

    disp('cos(x) и sqrt(x) пересекаются ');

    end

    cross=cross+ shethic;

    shethic=0;

    razn2=0; % обнуляем переменные

    x=0.5;

    while x <= 2

    razn1=cos(x)-x*x+1; % корень уравнения cos(x)=x*x+1

    if razn2*razn1 ==0 %if razn2*razn1 <0

    shethic=shethic+1;

    end

    x=x+dx;

    razn2=razn1;

    end

    if shethic>0

    disp('cos(x) и x*x-1 пересекаются ');

    end

    cross=cross+ shethic;

    shethic=0;

    razn2=0;% обнуляем переменные

    x=0.5;

    while x <= 2

    razn1=sqrt(x)-x*x+1; % корень уравнения sqrt(x)=x*x+1

    if razn2*razn1 ==0 %if razn2*razn1 <0

    shethic=shethic+1;

    end

    x=x+dx;

    razn2=razn1;

    end

    if shethic>0

    disp('sqrt(x) и x*x-1 пересекаются');

    end

    cross=cross+ shethic;

    disp('cross');disp(cross);

    x = 0.5:0.0001:2; % шаг и интервал

    y = cos(x);

    y2 = pow2(x) -1;

    y3 = sqrt(x);

    plot(x,y,x,y2,x,y3)% функция построения графика
    Вывод: в ходе лабораторной работы мы изучили и научились применять базовые операторы в среде MATLAB, изучили базовые команды, а так же изучили отладку программы.


    написать администратору сайта