Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi
krzyszbi
post
Post #2





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

Posty w temacie


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: 6.10.2025 - 12:04