Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [bcmath] bład liczenia, błędne licenie
krzyszbi
post 15.02.2008, 15:01:51
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


--------------------
Everything should be made as simple as possible, but not simpler. - A.Eainstein
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:43