Odpowiedz w wątku  [ Posty: 53 ]  Przejdź na stronę Poprzednia strona  1, 2, 3
zależność gęstości od temp 
Autor Wiadomość
*********
Avatar użytkownika

Dołączył(a): 4 sty 2006, o 13:38
Posty: 972
Lokalizacja: <*>
Post 
cos dziwnie sformulowalas ten problem z tego co napisalas wynika ze nei ma co interpolowac tylko odczytac w tablicach.
wyglada ze wszystko masz gestosc jako funkcej T, pomeirzona gestosc w jakiejs temperaturze i co tu interpolowac ?
mozze jak konkretnie napiszesz co i jak to sie da cos pomoc ;)
bo na razie nei widze tu nic do roboty :) no chyba ze pora pozna i nei chwytam o co pelza ;)

_________________
posiadane odznaczenia i ordery :
snopeczek sianka z kokardką - dar od doznanie@MODERATOR
Obrazek


10 sty 2008, o 04:27
Zobacz profil

Dołączył(a): 10 sty 2008, o 03:17
Posty: 2
Post 
tak moge odczytać z tablic, ale to bedzie przyblizona wartość... bo jesli gęstośc w jakiejś tam temp jest 0.8150 a ja mam podane w tabeli wartości tylko dla gęstości 0.8100, następnie 0.8200,0.8300 itd ....w instrukcji mam napisane, że mam przeliczyć gęstość w 20 st za pomocą własnie tej interpolacji gęstości z tej tabeli.


10 sty 2008, o 09:26
Zobacz profil
*********
Avatar użytkownika

Dołączył(a): 4 sty 2006, o 13:38
Posty: 972
Lokalizacja: <*>
Post 
No dobra jestem i dalej nie wiem o co ci chodzi ;)
Przypuszczam ze o to co ponizej :

Masz tablice gestosci naft w danych temperaaturach
Tablica ta powinna miec uporzadkowana rosnaco kolumne temperatury tzn na poczatku tablei najmniejsza na koncu najwyzsza

Teraz w tej tabeli odszukujesz takie dwie sasiednie temperaury ze gorna jest mniejsza od 20 a dolna wieksza od 20 czyli 20 lezy pomiedzy nimi. Musza to byc dwie sasiednei temperatury
Ozmaczymy je jako t1 i t2 a odpowiadajace im gestosci odczytane z atbeli jako d1 i d2
np jesli lewa kolumna ma postac

Kod:
5C    0.910
15C   0.880
30C   0.860
45C   0.820

to twoja temperatura dla ktorej szukasz gestosci czyli tx = 20C lezy pomiedzy 15C a 30C
czyli
t1 = 15
tx = 20
t2 = 30

odpowiadaja im gestosci
d1 - odczytana z tabeli
dx - ta ktora trzeba wyznaczc na drodze interpolacji
d2 odczytana z tabeli

Przy onterpoalcji liniowej przyjmuje sie ze w tak malym zakresie dowolna funkcja opisujaca gestosc jako funkcje temperatury jest funkcja liniowa o postaci
d (t) = a*t +b
gdzie a i b jakies tam wspolczynniki
hdybysmy sobie narysowlai wykresik d(t) w tymzakresie to oznacza to ze w przedziel temperatur od t1 do tt2 wszystkie wartosci gestosci d sa liniowa funkcja temperatury i leza na prostej przechodzacej przez pukty )t1, d1) (t2,d2) czyli takze twoj poszukiwany punkt (tx, dx) na niej lezy.
Wykorzystujac fakt iz znamy wspolrzedne 3 punktow (albo wartosi funkcji liniowej dla 2 znanych argumentow) ozemy spokojnie wyznaczyc sobie to rownanie czyli okreslic wspolczynniki a i b a znahac je na podstawie znanej tx wyliczymy dx. I to cala slynna interpolacja liniowa. Mozna sobje ja tlumaczyc na kilka innych sposobow :)

a wic lecimy dalej
zapisujemy sobje rownania naszej prosztej dla znanych punktow p1 i p2 o wspokrzednych (t1, d1) i (t2,d2)

(1) d1 = a*t1 +b
(2) d2 = a*t2 +b
(3) dx = a*tx +b

Poniewa jestem leniwy to pokombinuje zamiast rozwiazywac :)

od 3 odejmuje 1
dx - d1 -a*tx - a*t1
czyli
(4) dx - d1 = a (tx-t1)

Odejmujemy od drugiego pierwxze i mamy
d2 - d1 = at2 - at1
czyli a = (d2-d1)/(t2-t1)
wstawiamy do *4( i mamy
dx - d1 = a (tx-t1)
dx - d1 = (tx-t1) * (d2-d1)/(t2-t1)

czyli
Kod:
             (d2-d1)       
d(x) = d1 +  -------- * (tx-t1)
             (t2-t1)

zauwaz ze zwisa nam wzor tej funkcji bo tylko potrzebojemy cos do licznia ale jak sie upierasz na funkcje to sobie rozwin nawias i masz z funkcje.

Nie zostaje nam nic innego jak wstawic odczytane z tablic t1 t2 d1 d2 oraz wartosc tx=2o dla ktorja szukamy dx i po kilku prostych dzialaniach mamy dx ;) Ot i cale mecyje z interpolacja liniowa.

Poniwaz cheniki ti zboczaki krzyzujace sie i proporcjonujace namietnie tam gdzie tylko mozna a nawet tam gdzie nei wypada to cos podpowiem na koniec gdybys szla droga gemetryczna to chyba z ktoregos z twierdzonek ojakichs prostycj cos tam przecinajacy czy z kilku innych bys to samo otrzymala
Jak znasz te twierdzonko to wiesz o co mi chodzi a jak nie too pocierpisz jeszcze troche,

Popatrzmy na to cos co otrzymalismy
Kod:
             (d2-d1)       
d(x) = d1 +  -------- * (tx-t1)
             (t2-t1)


brzydkie jakies paskudne podejrzanei wyglada
a mzoe tak wyglada ciekawiej ?
Kod:
(dx-d1)   (d2-d1)       
------- = -------- 
(tx-t1)   (t2-t1)


Dlaczego ciekawie ? Ano popatrzmy jak latwo i bez matematyki sie do YES_YES_YES_sic

Mamy nasz tabelke z ktorej jak powyzj wezmiemy fragment zawierajacy temperature dla ktorej chcemy interpolowac gestosc

Kod:
t1 d1
tx dx
t2 d2


patrzymy na pierwszy rzadeki .. olewamy go
ale drugi i trzeci rzadek juz pomeczymu odejmowankiem
Wartosci w 2 i 3 rzedzie pomniejszamy o wartosc w pierwszym rzedzie
Kod:
t1             d1               
tx  tx - t1    dx    dx - d1   
t2  t2 - t1    d2    d2 - d1   



mowa postac rzedu 2 i 3 bedzie
Kod:
tx - t1    dx - d1   
t2 - t1    d2 - d1   


znamy wszystkie wartosci oprocz prawej gornej ktorej szukamy
poniewaz jest to liniowa to z proporcji typu
Kod:
3 skrzynki   x jablek
1 skrzynka  2 jablka
x =  2*3/1


mamy

szukaane = to co pod * to co po lewej / to co po skosie
czyli
szukaane = dx - d1
to co pod = d2 - d1
to co po lewej tx - t1
to co po skosie t2 - t1

(dx - d1) = (d2 - d1)*(tx - t1)/(t2 - t1)
(dx - d1)/(tx - t1) = (d2 - d1)/(t2 - t1)

czyz to nie jest to samo co przed chwila wyprowadzalismy ?

Kod:
(dx-d1)   (d2-d1)       
------- = -------- 
(tx-t1)   (t2-t1)



oczywiscie trzeba zauwazyc iz wyliczasz wartosc
(dx - d1) = wynik z proporcji
czyli szukana gestoosc
dx = wynik z proporcji + d1

wydaje mi sie ze metoda mlpki jest latwiejsza
byle -
tabela posortowana rosnaco (na dole najwieksza) temperatury
potem znalezc przedzial
poodejmowac wartosci z pierwzgo rzedu
z proporcji wyliczyc dx - d1
do wyniku z proporcji dodac d1 (gestosc z pierwszego rzedu)

Tak szczerze mwoiwac to po 2 lub 3 obliczeniach samo ci sie bedzie ukladalo ;)


wezmy przykladowe dane jak powyzej
Kod:
wiersz1 5C    0.900
wiersz2 15C   0.870
wiersz3 30C   0.840
wiersz4 45C   0.810

szukamy dla 20C
20 jest pomiedzy 15 a 30 czyli interesyje nas wiersz2 i wiersz3

Kod:
t1=15C   d1=0.870
tx=20    dx
t2=30C   d2=0.840

ze wzoru wykutego na pamiec
Kod:
             (d2-d1)       
dx = d1 +  -------- * (tx-t1)
             (t2-t1)

             (0,840 - 0,870)
dx = 0,870 + ---------------- * (20-15)
             (30-15)

czyli
             - 0,030
dx = 0,870 + -------- * (5)
               15

             
dx = 0,870 - 0,002 *5 =0,870 - 0,01 = 0,860



a tera po malpiemu

Kod:
t1=15C   d1=0.870
tx=20    dx
t2=30C   d2=0.840

20 - 15   dx - 0.870
30 - 15   0.840 - 0.870

5         dx - 0.870
15        = 0,030
teraz jabluszka w skrznkach
(dx - 0.870) = -0,030 * 5/15
dx - 0.870 = -0,030 * 1/3
dx - 0.870 = -0,030/3
dx - 0.870 = -0,010
dx = -0,010 + 0.870  =0.860

chmmmmdziwne wyszlo to samo ;((( podejrzane


Na koniec dalej twierdze ze skoro masz tabice obejmujace zakres cie interesujacy i masz pomiar d=0.8414 w T=22.5 stopniach to dalej nie wem co chcesz interpolowac
no chyba ze chcesz z tablicy wyznaczyc gestos nafty dla temperatury w ktorej dokonywalas pomiaru i w ten sposob ocenic jakos swego pomaiaru
ale to naprawde ma niewiele wspolnego z tym co piszesz (tak przynajmniej mi sie wydaje moze mam pomrocznosc jasna ale trudno)

A najprosciej to do jakiegos arkusz wrzucic ta formulke i liczy (o ile nie ma jakiejs glupawej funkcji gotowej)

_________________
posiadane odznaczenia i ordery :
snopeczek sianka z kokardką - dar od doznanie@MODERATOR
Obrazek


10 sty 2008, o 18:29
Zobacz profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w wątku   [ Posty: 53 ]  Przejdź na stronę Poprzednia strona  1, 2, 3

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 34 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Multumiri adresate phpBB.com & phpBB.ro..
Design creat de Florea Cosmin Ionut.
© 2011

..