Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [bcmath] bład liczenia, błędne licenie
krzyszbi
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

Ostrzeżenie: (0%)
-----


mam następujący wzór :
v= -0.8+10^10^(w1- ((w1-w2) /(log(t1)-log(t2)))*(log(t1)-log(t3)));
gdzie w = log(log(v+0.8))

od strony php mam nastepująco
  1. <?php
  2. private function lepkosc ($w1,$w2,$t1,$t2,$t3){
  3. $w1 = log(log($w1 + 0.8));
  4. $w2 = log(log($w2 + 0.8));
  5. $t1 = $t1+273.15; // zamiana na kelwiny
  6. $t2 = $t2+273.15;
  7. $t3 = $t3+273.15;
  8. bcscale(10);
  9. $w3 = bcsub( $w1,bcmul( bcdiv( bcsub($w1,$w2), bcsub(log($t1),log($t2)) ),bcsub(log($t1),log($t3)) ) );
  10. return bcsub(bcpow(10,bcpow(10,$w3)),0.8);
  11. }
  12. ?>

lub
  1. <?php
  2. private function lepkosc ($w1,$w2,$t1,$t2,$t3){
  3. $w1 = log(log($w1 + 0.8));
  4. $w2 = log(log($w2 + 0.8));
  5. $t1 = $t1+273.15; // zamiana na kelwiny
  6. $t2 = $t2+273.15;
  7. $t3 = $t3+273.15;
  8. return (10 ^ ( 10 ^ ($w1- ( ($w1-$w2) / (log($t1)-log($t2)) ) * (log($t1)-log($t3)))))-0.8;
  9. }
  10. ?>


i zawsze zwraca mi błędny wynik
dla
w1 = 43,
w2= 6.4,
t1=313,
t2=373,
t3=589,
v3 powinno wyjść 0.638399828
a mi zawsze inaczej wychodzi
dla funkcji z bcmath wychodzi mi zawsze 0.20000
dla już cos innego ale nie poprawny wynik
może ja coś źle robie czy to może niedokładne liczenie php
Go to the top of the page
+Quote Post
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


w php znaczek ^ to nie operator potęgowania tylko opretor bitowy XOR
do potęgowania służy funkcja pow(), popraw w swoim kodzie:
  1. <?php
  2. return pow(10, pow(10, ($w1- ( ($w1-$w2) / (log($t1)-log($t2)) ) * (log($t1)-log($t3)))))-0.8;
  3. ?>

i u mnie zwraca 0.34098115221016 i to jest poprawny wynik dla danych które pokazałeś...
wiec albo masz błąd we wzorze, albo ktoś sie pomylił podając ten oczekiwany wynik...
Go to the top of the page
+Quote Post
krzyszbi
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

Ostrzeżenie: (0%)
-----


mam wzór z Exelu i tam wychodzi wynik jak podałem wyżej
a że ^ to nie wiedziałem ze nie test znacznikiem potęgo nawet nie sprawdziłem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.03.2026 - 06:33