Можно ли отменить несколько функций pow ()?

Мне интересно, можно ли отменить вычисления, содержащие функции несколько pow(), с разными (но известными) показателями. Учитывая прямой расчет, мне нужен обратный расчет.

<?php
# Forward calculation
$in = 9;
$out = pow($in, 2) + pow($in, 3); // = 810

# My attempt at an reverse calculation
$result = pow($out, 1/2) + pow($out, 1/3); // = 37.7821...

Я хочу, чтобы обратный $result был 9, но вижу 37.7821 ... Кажется, это связано с тем, что $out нужно разделить между каждой функцией pow(), но если показатели не совпадают, я не уверен, как это распределить. Так как по отдельности работает каждая обратная функция pow (), но не при сложении вместе.

В конце концов, моя цель - перевернуть полиномиальную кривую 4-го порядка. Я в основном самоучка математики, поэтому предпочитаю примеры кода уравнениям.

попробуйте проверить функцию log(): php.net/manual/en/function.log.php

kevinniel 11.03.2018 17:42

В общем нет. Даже кубическое уравнение, подобное приведенному выше примеру, нелегко решить аналитически. Однако вы можете использовать итеративный подход к решению, например бисекция, методы Ньютона-Рафсона, секущие методы.

meowgoesthedog 11.03.2018 18:18

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

Nico Schertler 11.03.2018 19:15

Есть ли ограничения на $in? Это целое число? это ограничено диапазоном? Можно предложить двоичный поиск $in с учетом $out и знанием его вычислений ... но это только в том случае, если домен $in слишком велик для сохранения частичной функции обратного вычисления на карте.

lockcmpxchg8b 13.03.2018 08:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
249
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Позвольте мне назвать вашу первую экспоненту a и вторую экспоненту b.

$out содержит $in в следующем соотношении -

1:[$in^(b-a)]

Отношение было сформировано за счет уменьшения общего множителя в обоих терминах $out.

Таким образом, вы можете изменить свой $result, включив только компонент $out в соотношении, указанном выше -

$result = pow($out*[1/(1+$in^(b-a))], 1/2) + pow($out*[$in^(b-a)/(1+$in^(b-a))], 1/3); 
//the above $result will be 9 in the specific case

Значение $result будет равно $in.

OP хочет пересчитать значение $in из $out. Это круговой ответ.

meowgoesthedog 11.03.2018 18:27

Как можно использовать $in в правой части формулы, если предполагается, что $in рассчитывается явно?

Nico Schertler 11.03.2018 19:21

Извините, если мне непонятно, для обратного расчета $in неизвестен. Но ваш код действительно работает. Узнаю здесь что-то новое, спасибо.

Ecker00 12.03.2018 08:27
Ответ принят как подходящий

Как указали мяу и Нико Шертлер, решить эту проблему непросто (по крайней мере, далеко за пределами моей компетенции).

Я решил это с помощью подгонки кривой по данным прямого расчета (mycurvefit.com). Он не дает идентичных результатов, но достаточно близкое приближение для моего использования (распределение баллов для системы выравнивания).

Другие вопросы по теме