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

40
if
d<0
% то вывод сообщения,
disp(
'Real roots are not present'
);
else
%иначе вычисление корней соответствующего квадратного уравнения.
x1=(-b+sqrt(d))/2/a;
x2=(-b-sqrt(d))/2/a;
% Если оба корня отрицательны,
if
(x1<0)&(x2<0)
% вывод сообщения об отсутствии действительных корней.
disp(
'Real roots are not present'
);
% иначе, если оба корня положительны,
elseif
(x1>=0)&(x2>=0)
% вычисление четырех корней.
disp(
'Four real roots'
);
y1=sqrt(x1);
y2=y1;
y3=sqrt(x2);
y4=y2;
disp(y1);
disp(y2);
disp(y3);
disp(y4);
% Иначе, если оба условия (x1<0)&(x2<0) и (x1>=0)&(x2>=0) не
выполняются,
else
% то вывод сообщения
disp(
'Two real roots'
);
% Проверка знака x1.
if
x1>=0
% Если x1 положителен, то вычисление двух корней биквадратного
% уравнения, извлечением корня из x1,
y1=sqrt(x1);
y2=y1;
disp(y1);
disp(y2);
% иначе (остался один вариант – x2 положителен), вычисление двух
% корней биквадратного уравнения извлечением корня из x2.
else
y1=sqrt(x2); y2=y1;
disp(y1); disp(y2);
end
end
end
результат
a=-6
b=9
c=-1
Four real roots
0.3476
0.3476
1.1744
0.3476
1...,32,33,34,35,36,37,38,39,40,41 43,44,45,46,47,48,49,50,51,52,...286
Powered by FlippingBook