Доброго времени суток.
Возник вопрос, как можно решить уравнение, не используя логарифмы:
var a = +prompt("Какое основание логарифма (a)?", 3); var b = +prompt("Какого числа степень узнать (b)?", 2); var c = +prompt("Какова точность вычисления степени, знаков?", 5); function log(a,b) // log 2 8 = 3 // Основание а = 2 // число b = 8 - результат // Известно основание и результат { var x = b; var i = 0; // целая часть степени while ( x > a ) { x = x / a; i++; } x = b; // X - Осталась дробная часть, которая не поделилась нацело var j = 0; // дробная часть степени var f = 0; for (var m = 1; m < c; m++) { var dekady = Math.pow(10,m); while (Math.pow(a,i + f + j/dekady) < x) { j++; } j--; f = f + j / dekady; j = 0; } return i + f; } var k = log(a,b); alert("log ("+a+") " + b + " = " + k + "\n Точность вычисления(знаков после запятой): " + c + "\n Абсолютная погрешность: " + (b - Math.pow(a, k)) + "\n Относительная погрешность: " + ((b - Math.pow(a, k)) / b) + "%");
Есть ли ещё какие-то методы для расчета таких уравнений без логарифмов? (немного абстрагироваться от привычного и посмотреть со стороны).
Спасибо за внимание!
ссылка на оригинал статьи https://habrahabr.ru/post/325150/
Добавить комментарий