функция эллипсоидной площади не дает правильных результатов - PullRequest
1 голос
/ 09 июля 2020

Я создал функцию, возвращающую площадь поверхности данного эллипсоида , но получаю странные результаты.

Вот функция:

function elipsoid($a,$b,$c){
    
    $ab=$a*$b;
    $ab=pow($ab,1.6);
    
    $ac=$a*$c;
    $ac=pow($ac,1.6);
    
    $bc=$b*$c;
    $bc=pow($bc,1.6);
    
    $abacbc=$ab+$ac+$bc;
    $abacbc=$abacbc/3;
    
    $prepie=pow($abacbc,0.016);
    
    $fourpies=3.1415926535898*4;
    
    $elipsoidarea=$prepie*$fourpies;
    
    
    return $elipsoidarea;
    
}

Если все значения $a, $b, $c равны 1, результатом будет 12.566370614359, что согласно калькулятору эллипсоидов в Google является правильным.

Если значения $a , $b, $c are all = 2, результат будет 13.02034823541, что согласно калькулятору эллипсоидов в Google должно быть 50.26548.

Моя дочь-подросток помогла мне перевести это:

S≈4π((ab)1.6+(ac)1.6+(bc)1.63)1/1.6 (копия, вставленная из Google, теперь не выглядит как уравнение, смеется).

В форме «идиота», чтобы я мог это понять.

Это расчет перевод правильный и / или я правильно его закодировал? Я также задаюсь вопросом, как, согласно Google, сфера шириной 4 м может иметь площадь поверхности 50 м? Не прав ли Google, как и многие сайты, на которых есть такая возможность расчета?

1 Ответ

1 голос
/ 09 июля 2020

здесь вы делаете неправильно,

$prepie = pow($abacbc,0.016); 

Должно быть,

$prepie = pow($abacbc,0.625); 

С этого момента

Формула

root из 1.6 -> 1/1.6 -> 0.625

...