C/C++
. Разветвляющийся процесс. Пересечение линий и решение уравнений.
Определить, пересекаются ли линии y=ax3+bx2+cx+d и y=kx+m. Если пересекаются, найти точки пересечения
Тут слишком много писать всего - даже одних ветвлений достаточно много получается. Вот уравнение в общем виде к данному заданию:
ax³ + bx² + (c-k)x + d-m = 0.
При a=0 это кубическое уравнение вырождается в квадратное, а если ещё и b=0, тогда в линейное и т.д. У кубических уравнений всегда есть хотя бы один вещественный корень, а у квадратных может и не быть ни одного. Кроме того коэффициенты скорее всего задаются не абсолютно точно, если они, например, не целые, а тогда и задача может оказаться некорректной. А делать это задание с целыми числами a, b, c, d, k, m - хоть вроде и неплохая идея (так как в этом случае тут всё чётко выходит), только вот решение получится лишь частичным...
ax³ + bx² + (c-k)x + d-m = 0.
При a=0 это кубическое уравнение вырождается в квадратное, а если ещё и b=0, тогда в линейное и т.д. У кубических уравнений всегда есть хотя бы один вещественный корень, а у квадратных может и не быть ни одного. Кроме того коэффициенты скорее всего задаются не абсолютно точно, если они, например, не целые, а тогда и задача может оказаться некорректной. А делать это задание с целыми числами a, b, c, d, k, m - хоть вроде и неплохая идея (так как в этом случае тут всё чётко выходит), только вот решение получится лишь частичным...
y=ax3+bx2+cx+d - это не линия, это кубическая гипербола. Кто-то, видать, тебя обманул.
Пересекаться это счастье будет при любом a<>0. А при a=0 мы имеем кучу вырожденных случаев, в общем сводящихся к решению квадратного уравнения.
Ну а решать кубическое уравнение - увольте-с, википедия вам в помощь...
Пересекаться это счастье будет при любом a<>0. А при a=0 мы имеем кучу вырожденных случаев, в общем сводящихся к решению квадратного уравнения.
Ну а решать кубическое уравнение - увольте-с, википедия вам в помощь...
Для определения пересечения линий необходимо приравнять уравнения линий друг к другу и решить полученное уравнение относительно x.
y = ax^3 + bx^2 + cx + d
y = kx + m
ax^3 + bx^2 + cx + d = kx + m
ax^3 + bx^2 + (c - k)x + (d - m) = 0
Данное уравнение является кубическим уравнением относительно x.
Если мы найдем значение x, мы сможем подставить его в уравнение y = kx + m, чтобы найти соответствующее значение y.
Для решения кубического уравнения можно воспользоваться формулой Кардано:
x = [(q + (q^2 + r^3)^0.5)^(1/3) + (q - (q^2 + r^3)^0.5)^(1/3)] - b/3a
где
q = (3ac - b^2)/(9a^2)
r = (9abc - 27a^2d - 2b^3)/(54a^3)
Если вычисленное значение x подставить в уравнение y = kx + m, мы найдем соответствующее значение y.
Если при решении уравнения мы получим три значения x, то это означает, что линия пересекает линию y=kx+m в трех точках. Если мы получим два значения x, то линии пересекаются в двух точках. Если же мы получим только одно значение x, то линии касаются друг друга в этой точке.
Заметим, что при решении кубического уравнения могут получаться комплексные корни, что означает, что линии не пересекаются в действительных числах.
y = ax^3 + bx^2 + cx + d
y = kx + m
ax^3 + bx^2 + cx + d = kx + m
ax^3 + bx^2 + (c - k)x + (d - m) = 0
Данное уравнение является кубическим уравнением относительно x.
Если мы найдем значение x, мы сможем подставить его в уравнение y = kx + m, чтобы найти соответствующее значение y.
Для решения кубического уравнения можно воспользоваться формулой Кардано:
x = [(q + (q^2 + r^3)^0.5)^(1/3) + (q - (q^2 + r^3)^0.5)^(1/3)] - b/3a
где
q = (3ac - b^2)/(9a^2)
r = (9abc - 27a^2d - 2b^3)/(54a^3)
Если вычисленное значение x подставить в уравнение y = kx + m, мы найдем соответствующее значение y.
Если при решении уравнения мы получим три значения x, то это означает, что линия пересекает линию y=kx+m в трех точках. Если мы получим два значения x, то линии пересекаются в двух точках. Если же мы получим только одно значение x, то линии касаются друг друга в этой точке.
Заметим, что при решении кубического уравнения могут получаться комплексные корни, что означает, что линии не пересекаются в действительных числах.
Похожие вопросы
- Найти решение уравнения(arccos(x-1)+x^3-4=0) на указанном диапазоне ([0.5;1.9]). используя численный метод-Метод Ньютона
- Помогите написать код решения уравнения, желательно на с++
- Нужно составить программу для решения дифф. уравнений методом Рунге-Кутта
- Программирование разветвляющихся алгоритмов С++
- Найти корни квадратного уравнения.
- Составить программу для нахождения корней уравнения
- Перевести математическое уравнение в С
- Набрать текст программы на языке (C++) реализующий уравнение
- C++ Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции bool
- Написать кусочек С++Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции