Паскаль! составить программу в паскале решение дифференциального уравнения второго порядка например, y"-4'+3y=0

Рано007 Рано007    1   27.08.2019 07:20    3

Ответы
veronikamantul veronikamantul  20.08.2020 16:22
// PascalABC.NET 3.2, сборка 1416 от 26.03.2017
// Внимание! Если программа не работает, обновите версию!

function cx(x:real):string;
begin
  if frac(x)=0 then
    case Trunc(x) of
    0: Result:='';
    1: Result:='*exp(x)';
    -1:Result:='*exp(-x)'
    else Result:='*exp('+x+'x)'
    end
  else Result:='*exp('+x+'x)'
end;

function cx1(x:real):string;
begin
  if frac(x)=0 then
    case Trunc(x) of
    1: Result:='';
    -1:Result:='-'
    else Result:=x.ToString
    end
  else Result:=x.ToString
end;

begin
  var b,c:real;
  Writeln('Введите коэффициенты уравнения y+by''+cy=0');
  Read(b,c);
  var d:=b*b-4*c;
  if d>0 then begin
    d:=sqrt(d);
    var x1:=(-b-d)/2;
    var x2:=(-b+d)/2;
    Writeln('y=c1',cx(x1),'+c2',cx(x2))
    end
  else
    if d=0 then begin
      var x:=-b/2;
      if x=0 then Writeln('y=c1+c2*x')
      else Writeln('y=c1',cx(x),'+c2*x',cx(x))
      end
    else begin
      var re:=-b/2;
      var im:=sqrt(-d)/2;
      if re=0 then Writeln('y=c1*cos(',cx1(im),'x)+c2*sin(',cx1(im),'x)')
      else Writeln('y=exp(',cx1(re),'x)*(c1*cos(',cx1(im),
          'x)+c2*sin(',cx1(im),'x))')
      end
end.

Примеры
Введите коэффициенты уравнения y''+by'+cy=0
-2 10
y=exp(x)*(c1*cos(3x)+c2*sin(3x))

Введите коэффициенты уравнения y''+by'+cy=0
-4 3
y=c1*exp(x)+c2*exp(3x)
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика