Моделирование в MATLAB/Simulink и SCILAB/Scicos - page 41

39
соответствующий компонент матрицы
А
равны 0, и равен 0 в
противном случае (т.е. если компонент не равен 0).
3. 3. Условный оператор
В пакете MATLAB для программирования условных переходов
используется условный оператор, который в общем виде записывается
следующим образом:
if Логическая переменная 1,
Инструкции 1
elseif Логическая переменная 2,
Инструкции 2
else
Инструкции 3
end
В качестве
логической переменной
может быть использовано также
логическое выражение, то есть правая часть присваивания описанного в
предыдущем пункте.
Под
инструкциями
здесь понимаются набор команд, которые будут
выполняться, если все элементы матричного «логического» переменного
ненулевые.
В приведенном условном операторе конструкции, начинающиеся с
elseif
и
else
, могут быть опущены.
Пример 3.1.
Решить биквадратное уравнение
0
2
4
=+ +
c bx
ax
.
Для решения биквадратного уравнения необходимо заменой
2
x y
=
привести его к квадратному и решить это уравнение. Входными данными этой
задачи являются коэффициенты биквадратного уравнения
a
,
b
,
c
. Выходными
данными являются корни уравнения
1
x
,
2
x
,
3
x
,
4
x
.
Алгоритм состоит из следующих этапов:
1.
Ввод коэффициентов уравнения
a
,
b
и
с
.
2.
Вычисление дискриминанта уравнения
d
.
3.
Если
0
<
d
, определяются
1
y
и
2
y
, а иначе корней нет.
4.
Если
1
y
,
0
2
<
y
, то корней нет.
5.
Если
1
y
,
0
2
<
y
, то вычисляются четыре корня по формулам и выводятся
значения корней.
6.
Если условия 4) и 5) не выполняются, то необходимо проверить знак
1
y
.
7.
Если
1
y
неотрицательно, то вычисляются два корня по формуле
( )
1
y sqrt
±
, иначе оба корня вычисляются по формуле
( )
2
y sqrt
±
. Вычисленные
значения корней выводятся.
a=input(
'a='
);
b=input(
'b='
);
c=input(
'c='
);
% Вычисляем дискриминант.
d=b*b-4*a*c;
% Если дискриминант отрицателен,
1...,31,32,33,34,35,36,37,38,39,40 42,43,44,45,46,47,48,49,50,51,...286
Powered by FlippingBook