Найти, пересекаются ли линии y = bx2 + cx + d

Найти, пересекаются ли линии y = bx2 + cx + d и y = kx + m. Если пересекаются, отыскать точки скрещения

Задать свой вопрос
1 ответ
Полосы пересекаются в точках, где их уравнения при схожих доводах возвращают схожие значения. Чтоб определить условия точек скрещения данных уравнений линий

следует приравнять их правые доли и решить приобретенное уравнение условно аргумента х.

Сделаем подстановку и получим квадратное уравнение:

Далее обретаем дискриминант, проверяем его знак, производим ветвление метода в зависимости от результата. При неотрицательных t определяем х, извлекая из t квадратный корень и для каждого х вычисляем у из второго уравнения (оно кратче).

var
  a, b, c, d, f, m, p: real;

function y(x: real): real;
begin
  y := b * x * sqr(x) + m * sqr(x) + d * x + p
end;

procedure OutPoint(x: real);
begin
  writeln('Найдена точка скрещения функций (', x, ',', y(x), ')')
end;

procedure TDev(t: real; var np: Boolean);
var
  x: real;
begin
  if t = 0 then begin
    np := false;
    OutPoint(0)
  end
  else if t gt; 0 then begin
    np := false;
    x := -sqrt(t);
    OutPoint(x);
    x := sqrt(t);
    OutPoint(x)
  end
end;

var
  x1, x2, u, v, t1, t2, Dis: real;
  NoPoints: Boolean;

begin
  writeln('Введите значения переменных a,b,c,d,f,m,p');
  readln(a, c, f, m, p);
  u := c - m;
  v := f - p;
  Dis := sqr(u) - 4 * a * v;
  NoPoints := true;
  if Dis = 0 then begin
    t1 := -u / (2 * a);
    TDev(t1,NoPoints);
     end
  else begin
    t1 := (-u - sqrt(Dis)) / (2 * a);
    TDev(t1,NoPoints);
    t2 := (-u + sqrt(Dis)) / (2 * a);
    TDev(t2,NoPoints);
  end;
  if NoPoints then writeln('Общих точек пересечения нет')
end.

Тестовое решение

Введите значения переменных a,b,c,d,f,m,p
2 3 4 5 6 7 8
Найдена точка скрещения функций (-1.27201964951407,14.0901699437495)
Найдена точка скрещения функций (1.27201964951407,14.0901699437495)

Введите значения переменных a,b,c,d,f,m,p
-3 -5 -3 2 1 4 5
Общих точек скрещения нет
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт