Требуется найти все корни уравнения с точностью не ниже 10⁻¹². уравнение имеет вид вот решение на pascalabcnet 3.3, сборка 1627 от 27.01.2018: uses numlibabc; begin var f: real-> real: =x-> sqrt(abs(x+(0.387*x); var ol: =new rootsisolation(f,-10,10,0.1); var oz: =new zeroin(f,1e-12); foreach var r in ol.value do oz.value(r[0],r[1]).println end. найдены корни -3.1250285461067 -2.77171087522778 интересует решение другим путем (назовем его "школьным" или "студенческим") на любом из языков pascal, c/c++/c#, basic.
У меня когда-то была программа на QBASIC. (Первая личный комп вначале был без жёсткого диска. Под DOS грузили с дискеты. И там этот мелкий интерпретатор (ок 190 кБайт) был неплохим подспорьем.)
Программа сохранилась. Она изначально только график рисовала. Потом я её дополнял. В том числе и решением уравнений вилкой. Было несколько версий Функцию я по-быстрому заменил на требуемую в задаче. Перелопачивать и выяснять полностью состояние программы не стал.
За требуемую точность не поручусь. Но 4-6 знаков после запятой выдам. Это был "Полуавтоматический" вариант с прорисовкой графика. Красной линией прочерчивалась прямая y=0. График можно было перерисовывать, задавая новые пределы изменения переменной х. Глядя на график можно было определить исходные отрезки для запуска метода вилки.
На скринах, естественно, проблемы с кириллицей. (Ненастроенный DosBox) Но текст программы загнал в pdf. Там можно прочесть все надписи.
На 3-м снимке видно, что, потребовав точность , я получил ответ, отличающийся от ответа МАСТЕРА. Я так думаю, что у меня не все переменные, требуемые для расчёта объявлены с двойной точностью. (Изначально таких там вообще не было). Но 7 знаков после запятой в ответе совпадают. :) А может это ограничение демоверсии QBASIC интерпретатора.