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

0 голосов
166 просмотров

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


Информатика (94.4k баллов) | 166 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Биквадратное уравнение имеет вид ax⁴+bx²+c=0
Замена z=y² приводит к уравнению az²+bz+c=0, способ решение которого хорошо известен. Поскольку в задании указан уровень "5-9 классы", варианты с комплексными корнями рассматриваться не будут, т.е. при отрицательном дискриминанте D мы считаем, что корней нет.
\displaystyle D=b^2-4ac; \ d= \sqrt{D} \\ d\ \textgreater \ 0 \to z_{1,2}= \frac{-b\pm d}{2a}; \\ 
d=0 \to z_1=z_2= \frac{d}{2a} \\ 
y= \pm\sqrt{z}

var
  a,b,c,d,z1,z2:real;
begin
  Writeln('Введите коэффициенты биквадратного уравнения по убыванию степеней');
  Read(a,b,c);
  d:=b*b-4*a*c;
  if d<0 then Writeln('Нет корней')<br>  else begin
    d:=sqrt(d);
    z1:=(-b-d)/(2*a);
    z2:=(-b+d)/(2*a);
    if z1<0 then begin<br>      z1:=z2;
      if z1<0 then Writeln('Нет корней')<br>      else Writeln(-sqrt(z1),' ',sqrt(z1))
      end
    else begin
      Write(-sqrt(z1),' ',sqrt(z1),' ');
      if z2>=0 then Writeln(-sqrt(z2),' ',sqrt(z2));
      Writeln
      end
    end
end.


(150k баллов)