45 Yukarıdaki şekil düzensiz bir X,Y ilişkisini göstermektedir. bu fonksiyon eğri üzerindeki bir dizi noktayı birleştiren bir seri düzgün çizgi halindeki bölümlerle açıklanabilir. Noktaların sayısı ne kadar fazlaysa düzgün çizgi serileri eğriye o kadar yakın olur. Bundan başka noktalar arasında uzaklık eşit olmadığı zaman eğriliğin hızlı değişim gösterdiği bölgelerde noktalar kalabalıklaşabilir. nispeten lineer bölgelerde de birbirlerinden daha uzak durabilir. Kimya Mühendisliğinde karşılaşılan ilişkilerin çoğu genellikle monoton eğrilerdir. Bu yüzden - nokta yeteri kadar duyarlığa sahip grafikler vermektedir. Ancak gerektiğinde daha fazla nokta kullanılabilir. Herbir noktanın koordinatları ana programda X ve Y dizileri içinde saklanır. Belli bir X değeri için Y değerini hesaplamak için bir FUN alt programı kullanılabilir. bu alt program X ve Y değerleri dizisi içerisinden X değeri için X i ;Y i ; ve X j, Y j komşu koordinat noktalarını seçer sonra da aşağıdaki şekilde görüldüğü gibi noktalar arasında lineer interpolasyon yaparak Y yi hesaplar. FUN in program listesi aşağıda verilmektedir. Şekil 6. Çizgisel interpolasyon C*****ARBITRARY FUNCTION SUBROUTINE Y VERSUS X FUNCTION FUN(A,N,X,Y) DIMENSION X(),Y() IF(A-X()) 5,5,6 6 IF(A-X(N)),, FUNY(N) 5 FUNY() DO 3 I,N IF(A.LT.X(I)) GOTO 4 3 CONTINUE 4 FUNY(I-)+(A-X(I-))*(Y(I)-Y(I-))/(X(I)-X(I-)) END
46 Şekil 6.3 Çizgisel interpolasyon bilgi akışı Giriş değerinin ilk noktadan daha küçük veya son noktadan daha büyük olduğu durumda da altprogram işlevini yerine getirir. Her iki durumda da çıkış değeri Y nin ilk değeri (Y) veya son değeri olmaktadır. (Yn). Burada A giriş değişkeni, N toplam koordinat noktasının sayısı, X ve Y herbir noktanın koordinatlarını gösteren dizilerdir. Alt programdaki ilk satır (4 ve 5 satırları) giriş değerini ilk ve son noktaların X koordinatına karşı kontrol eder. A ya komşu noktaları bulmak üzere X ve Y dizisinden ardarda seçme işlemi. satırda başlayan DO çevrimi ile yapılır. İnterpolasyon formülü 3. satırda hesaplanmaktadır. FUN alt programı kullanılırken koordinat noktaları X ve Y dizilerinde X in artan değerleri halinde sıralanmalıdır. Y değerleri fonksiyonun kendisi tarafından belirlenip herhangi bir değere sahip olabilir. Aşağıdaki şekilde gösterildiği gibi fonksiyonda keskin bir süreksizlik varsa a ve b arasındaki kısma hemen hemen dikey bir eğim vermek üzere b noktasının X değerini a noktasınınkinden biraz daha büyük yaparak bir yaklaşım sağlanabilir. Şekil 6.4 Keskin süreksizlik durumunda çizgisel interpolasyon
47 Fun Alt Programının Kullanılması Elektriksel olarak ısıtılan bir borunun deneysel olarak ölçülmüş duvar sıcaklığını gösteren düzensiz bir fonksiyonun boru uzunluğunun sürekli bir fonksiyonu şeklinde çıkarılması isteniyor. Fonksiyon aşağıdaki şekilde gösterilmektedir. L i.5 3 4 5.3 7.4 8 8.5 9.7 T i 5 9 3 33 345 35 37 375 37 35 9 4 375 T i 4 6 8 L i Bu veriler bir dizi içerisine programının seçimine bağlı olarak değişik şekillerde girilebilir. Bunlardan birisi DATA komutu kullanılmasıdır. Aşağıda verilen FORTRAN programında bu tip bir veri girişi görülmektedir. C**** TEK BOYUTLU INTERPOLASYON DIMENSION AL(),AT() DATA(AL(N),N,)/.,.,.,.5,3.,4.,5.3,7.4,8.,8.5,9.7,./ DATA(AT(N),N,)/,5,9,3,33,345,35,37,375,37,35,9/ W5.87 TFUN(W,,AL,AT) WRITE(*,) W,T FORMAT(8X,'W',F.5,8X,'T',F.5) STOP END Burada veriler X(AL) ve Y(AT) dizesine girildikten sonra, boru boyunca herhangi bir yerdeki sıcaklığın gerektiği herhangi bir zaman 5. satırdaki gibi bir komut kullanılarak alt program çağrılabilir. Burada L boru boyunca uzaklık T ise sıcaklıktır. Program çıktısı olarak 5.87 m uzunluk için 355,9 değeri elde edilecektir. Bu alt program değişik şekillerde kullanılabilir. Örneğin belli bir problemin çözülmesinin iteratif bir çözüm işlemi gerektiğini farzedelim Herbir iterasyon kendisini izleyen iterasyonda kullanılacak bir F(L) fonksiyonu üretir. Bu oldukça kolay bir şekilde F(L) fonksiyonunu ve karşılığı L değerini iki hafıza dizisine konularak yapılabilir. Bunu izleyen iterasyonda bu iki dizi FUN e giriş değerleri olarak belirtilerek F(L) elde edilir.
48 İki Boyutlu Düzensiz Fonksiyon (Fun ) FUN tek boyutlu fonksiyon türetilmesinde programlanan interpolasyon tekniği iki boyutlu fonksiyona genişletilebilir. Bu durumda bir Y değişkeni iki giriş değişkeni X ve Z' nin bir fonksiyonudur. Böyle bir fonksiyonu aşağıdaki şekilde verilen bir egriler sınıfı ile tanımlayabiliriz. Bu iki boyutlu fonksiyon için interpolasyon işleminde kullanılan FUN alt programı aşağıda verilmektedir. Bu alt programdaki deyimlerin çoğu X ve Z giriş değişkenlerinin mevcut verilerin sınırlarının ötesinde olup olmadığını belirlemek amacıyladır. Şekil 6. İki boyutlu düzensiz veriler Böyle bir durum gerçekleştiğinde veri alanının sınırındaki en yakın nokta uygun extrapolasyonla belirlenir ve fonksiyonunun değeri olarak sisteme girer. Normal şartlar altında değişken listesinde A ve B sembolleriyle gösterilen X ve Y değerleri veri sınırları içinde olacaktır. 3 uncu satırdan başlayan araştırma işlemi ilk önce X ekseni üzerinde A değerine komşu noktaları belirler. Sonra B giriş verisine komşu noktaları bulmak üzere Z ekseni boyunca araştırmayı sürdürür. İnterpolasyon formülleri 47., 5. ve 53. satırlardadır. C*****X VE Z'YE KARSI Y'NIN DÜZENSIZ FONKSIYONU ALTPROGRAMI FUNCTION FUN(A,B,N,M,X,Z,Y) DIMENSION X(6),Y(6),Z(6) IF((A.LE.X()).AND.(B.LE.Z())) GO TO 3 IF((A.GE.X(N)).AND.(B.GE.Z(N))) GO TO 4 IF((A.LE.X()).AND.(B.GE.Z(M))) GO TO 5 IF((A.GE.X(N)).AND.(B.LE.Z(N-M+))) GO TO 6 IF(A.LE.X()) GO TO 9 IF(A.GE.X(N)) GO TO 3 MPM+ GO TO 7 3 IN-M+ IN GO TO 9 I II+M-
49 DO JI,I IF(B.LE.Z(J)) GO TO JJ- FUNY(J)+(B-Z(J))/(Z(J+)-Z(J))*(Y(J+)-Y(J)) 3 FUNY() 4 FUNY(N) 5 FUNY(M) 6 FUNY(N-M+) 7 DO 3 IMP,N,M IF(A.LT.X(I)) GO TO 4 3 CONTINUE 4 IF(B.LT.Z(I-M)) GO TO 9 IF(B.GT.Z(I-)) GO TO GO TO 9 YTY(I-M) YTY(I) GO TO 8 YTY(I-) YTY(I+M-) GO TO 8 JI-M JI- DO 5 JJ,J IF(B.LT.Z(J)) GO TO 6 5 CONTINUE 6 YTY(J-)+(B-Z(J-))/(Z(J)-Z(J-))*(Y(J)-Y(J-)) II+M- DO 7 JI,I IF(B.LT.Z(J)) GO TO 8 7 CONTINUE 8 YTY(J-)+(B-Z(J-))/(Z(J)-Z(J-))*(Y(J)-Y(J-)) 8 FUNYT+(A-X(I-))/(X(I)-X(I-))*(YT-YT) END Düzensiz fonksiyon FUN nin kullanıldığı bir ısı transferi probleminin çözüm örneği aşağıda verilmektedir. Burada ısıtılan demir çubuk boyunca çeşitli noktalardaki sıcaklıklar zamanla değiştiği için çevreye verilen ısı da zamanla değişmektedir. Belirli zamanlarda belirli noktalar için verilen düzensiz sıcaklık verileri kullanılarak, çubuk boyunca eşit aralıklı olarak sıcaklıkların ve ısı akısının zamanla değişiminin bulunması istenmektedir. Programın başlangıç bölümünde üç boyutlu verilerin programa dahil edilişi incelendiğinde her zaman için adet veri olduğundan her veri grubu için aynı zamanın kez tekrarlandığı görülmektedir. Ayrıca 5 farklı zaman olduğu için aynı uzaklık veri grubu 5 kez tekrarlanmaktadır. Belirli bir zamanda DO döngüsü içinde yer alan düzgün aralıklı olarak belirtilmiş her uzaklık için sıcaklık değerinin FUN olarak bulunması amacıyla program alt programa yönlendirilmektedir.
5 C**** IKI BOYUTLU INTERPOLASYON DIMENSION AL(6),AT(6),AZ(6) DATA(AZ(N),N,6)/45.,45.,45.,45.,45.,45.,45.,45.,45.,45.,45., /45.,9.,9.,9.,9.,9.,9.,9.,9.,9.,9.,9.,9., /35.,35.,35.,35.,35.,35.,35.,35.,35.,35.,35.,35., /8.,8.,8.,8.,8.,8.,8.,8.,8.,8.,8.,8., /5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5./ DATA(AL(N),N,6)/.,.,.,.5,3.,4.,5.3,7.4,8.,8.5,9.7,., /.,.,.,.5,3.,4.,5.3,7.4,8.,8.5,9.7,., /.,.,.,.5,3.,4.,5.3,7.4,8.,8.5,9.7,., /.,.,.,.5,3.,4.,5.3,7.4,8.,8.5,9.7,., /.,.,.,.5,3.,4.,5.3,7.4,8.,8.5,9.7,./ DATA(AT(N),N,6)/,5,,9,3,45,6,7,75,7,35,95, /,78,9,,6,7,8,9,95,85,65,, /,,3,7,9,3,3,3,35,35,9,45, /,5,5,3,3,3,35,34,345,34,35,7, /,5,9,3,33,345,35,37,375,37,35,9/ OPEN(4,FILE'INTCIKTI',STATUS'OLD',ACCESS'SEQUENTIAL') WRITE(*,) WRITE(4,) FORMAT(8X, 'ZAMAN UZAKLIKSICAKLIK ISI AKISI',/, /' ') T. H.5 DO UZ, ZA9. TFUN(ZA,UZ,6,,AZ,AL,AT) QLH*(FUN(ZA,UZ,6,,AZ,AL,AT)-T) CTWT CQLH*(TW-T) WRITE(*,) ZA,UZ,T,QL WRITE(4,) ZA,UZ,T,QL FORMAT(4X,F.5,4X,F.5,3X,F.5,3X,F.5) CONTINUE STOP END ZAMAN UZAKLIK SICAKLIK ISI AKISI 9.. 78. 53. 9.. 9. 45. 9. 3. 6. 565. 9. 4. 7. 585. 9. 5. 77.693 63.77 9. 6. 83.3333 65. 9. 7. 88.95 657.43 9. 8. 95. 64.5 9. 9. 76.6667 6. 9... 475. 9... 475. 9... 475.
5 MATHCAD İŞLEMLERİ ------------------------------------------------------------------------------------------------------------------------------------------------ Basit Dönüşüm Örnekleri (Santigrat ölçeğinden ---> Fahrenheit ölçeğine) Celsius Fahrenheit.8. Celsius 3 Fahrenheit 5 ------------------------------------------------------------------------------------------------------------------------------------------------ Basit Dönüşüm Örneği (Fahrenheit ölçeğinden ---> Santigrad ölçeğine) Fahrenheit Celsius Celsius. Fahrenheit 3.8 ------------------------------------------------------------------------------------------------------------------------------------------------ Aşağıda üç farklı -Boyutlu grafiğin çizimi gösterilmektedir :. Bir aralık değişkenine karşı bir fonksiyon. Bir indeks değişkenine karşı bir vektör. 3. Bir vektöre karşı bir vektör ------------------------------------------------------------------------------------------------------------------------------------------------ Bir aralık değişkenine karşı bir fonksiyonun grafiklenmesi (Santigrat ölçeğinden ---> Fahrenheit ölçeğine) C,.. C adi bir değişken olarak alınmaktadır. F( C).8. C 3 F bir fonksiyon olarak alınmaktadır. F( C) 5 5 5 3 4 5 6 7 8 9 Şekil. Bir aralık değişkenine karşı bir fonksiyonun grafiği. C C 3 4 5 6 7 8 9 F( C) 3 5 68 86 4 4 58 76 94 ------------------------------------------------------------------------------------------------------------------------------------------------
5 Bir indeks değişkenine karşı bir vektörün gösterilmesi ve tablo oluşturulması c,.. C bir indeks değişkenidir; bu yüzden tamsayı değerlere sahiptir. (örneğin C. olam F c.8. c 3 F, C tarafından indekslenmiş bir vektör olarak tanımlanmaktadır. 5 5 F c 5 3 4 5 6 7 8 9 c Şekil. Bir indeks değişkenine karşı bir vektörün grafiği c 3 4 5 6 7 8 9 F c 3 5 68 86 4 4 58 76 94 Bir vektöre karşı bir vektörün gösterilmesi V c c Bir indeks değişkeninin vektörleştirilmesi 3 F c 3 4 5 6 7 8 9 V c Şekil. Bir vektöre karşı bir vektörün grafiği
53 Bir fonksiyonun vektörleştirilmesi (Birden fazla değerin elde edilmesinde, basit sin(x) gibi fonksiyonlar "skaler olmayan değer" biçiminde bir hata mesajı verecektir. Bu yüzden vektörleştirilmelidir. Bununla beraber root, Find, Minerr gibi fonksiyonlar vektörleştirilemezler.) x sin( x).84.99 f(x) biçimindeki cebirsel bir eşitliğin "root" fonksiyonu kullanılarak nasıl çözüleceğinin gösterilmesi. sin( x) x x f( x) sin( x) x... denklemin çözümü için başlangıçta bir öngörü yapılır. Farklı bir öngörü farklı bir çözüme götürebilir.... Çözülecek eşitlik root( f( x), x).877... Sonuç doğrudan gösterilebilir. veya, x root( f( x ), x)... Sonucu kaydetmek için önce bir atama yapılıp, sonra sonuç gösterileb x.877 f(x) fonksiyonunu grafikle gösterebiliriz x,... f( x).5.5 x
54 Fonksiyonun tanımında kullanılan değişkenin değeri, bu değişken argümanın bir parçası olduğu sürece, da sonra değiştirilemez. Bunun nedeni MathCAD 'in eşitlikleri sadece bir kez ele alması ve geriye gitmemesi a f( x) a x f( ) 3 a f( ) 3 <--- Sonuçta bir degişiklik yok. Çok değişkenli eşitliğin çözümü. f( x, a) sin( x) ax. x.. f(,.5 ).34 x root( f( x,.5 ), x) Argümanı bir vektör olan bir eşitliğin gösterilmesi. (MathCAD ipucu : vektör veya dizi elemanları Find komutu içinde çözülecek argüman olarak kullanılamazlar) f( x, a) a a. x a a f( 3, a) 7 f 3, 4 4
55 Vektörel bir fonksiyonun nasıl oluşturulacağının gösterilmesi Her bir fonksiyon elemanının ayrı ayrı tanımı Not: Bileşik fonksiyonları tanımlamada çalışmayan f[(x) yerine fonksiyonları bir vektörün elemanları olar tanımlamak üzere f.(x) kullanılır. Bileşik fonksiyonlar vektörleştirildikten sonra f(x) in elemanı, f[(x) de dir. Ayrıca, fonksiyonun her bir bileşeni ayrı ayrı f(x)[: ne de f(x)[i: biçiminde tanımlanamaz. Bileşik fonksiyon tanımlayalım : f ( x) x f ( x ) 3. x Bileşenleri birleştirelim : f( x) f ( x) f ( x ) Vektörleştirilmiş fonksiyon bir bütün halinde çözülebilir. f( 3) 4 Vektörleştirilmiş fonksiyon bileşenleri halinde çözülebilir: f( 3) 4 f( 3) Vektörel bir fonksiyonun nasıl oluşturulacağının gösterilmesi -- Eleman fonksiyonların eşzamanlı olarak tanımı. Vektör fonksiyonu tanımlayalım : f( x) x 3. x Vektörleştirilmiş fonksiyon bir bütün halinde çözülebilir. f( 3) 4 Vektörleştirilmiş fonksiyon bileşenleri halinde de çözülebilir: f( 3) 4 f( 3)
56 Bir vektörün vektörel bir fonksiyonunun nasıl oluşturulacağının gösterilmesi f( x) x x x x 6 f Ancak, bir vektör fonksiyonu veya vektör degişkenleri Find içinde kullanılamazlar. "Find" kullanılarak bir eşitliğin nasıl çözüleceğinin gösterilmesi x... Başlangıç öngörü değeri sağlanır. Given... "Given" eşitliğin başladıgını gösterir. sin( x ) x... Bir (takım) denklemin verilmesi; Burada mantıksal eşitlik işareti var Find( x).877... Sonuçları doğrudan gösterelim. x,... sonuçları grafikle gösterebiliriz 4 sin ( x) x x
57 "Find" kullanılarak bir denklem takımının nasıl çözüleceğinin gösterilmesi x y Given... Başlangıç öngörü değerleri sağlanir.... eşitliğin başlangıcı x y 6.... denklem (mantıksal eşitlik işareti kullanılmalıdır) x y.... denklem Find( x, y).44.44... bir cevap dizisi "Find" kullanılarak bir denklem takımının nasıl çözüleceğinin gösterilmesi x y... Başlangıç öngörü değerleri sağlanir. Given... eşitliğin başlangıcı x y 6.... denklem (mantıksal eşitlik kullanılmalıdır) x y.... denklem x y Find( x, y )... Cevabin daha sonra kullanılmak üzere kaydedilmesi Gerçek değerler kaydedilmelidir. Aksi halde başlangıçtaki öngörü değerleri atanmış olarak kalır. x.44 y.44... sonucun gösterilmesi
58 Belirli bir sayıda tekrarlamanın nasıl yapılacağının gösterilmesi x... Ilk sayının verilmesi i..... indeks değişkeni x i x i... DO döngüsü a i x i i ve x tablosu "x[i" bir tablo verir; "x" ise bir vektör verir. i 3 4 5 6 7 8 9 x i a i 3 4 5 6 7 8 9 3 4 5 6 7 8 9 Bir denklemin bir indeks değişkeni olmaksızın belirli bir sayıda nasıl çözüleceğinin gösterilmesi f( x, a) sin( x) ax. a değişkeni bir aralık değişkeni ise a.,.... a değişkeninin tanımı x... baslangıç öngörüsü a root( f( x, a ), x)...3.8.4.5.58.44 root( f( x, a), x).6.6.7.39.8.9.37.95.877.5 a
59 Bir denklemin bir indeks değişkeni ile belirli bir sayıda nasıl çözüleceğinin gösterilmesi f( x, a) sin( x) ax. a değişkeni bir indeks değişkeni ise i.. indeks değişkeni sayısı a i i.. indeks değişkeni değerleri x... baslangıç öngörüsü kök i root f x, a i, x a i kök i...3.4.5.6.7.8.9.8.58.44.6.39.37.95.877 kök i.5 a i Belirli bir integralin nasıl alınacağının gösterilmesi s F( s) F( 5) 4.95 sin( x ) x dx fonksiyonun n belirli son değerine kadar integrasyonu F( s) s 8 sin( x ) x dx fonksiyonun n belirli başlangıç değerinden 8 son değerine kadar integrasyonu F( 5) 8.57
6 Bir interpolasyonun nasıl yapılacağının gösterilmesi j.. 3 indeks değişkeni eleman sayısı x j. 5 3 4 5 6 7 8 9 y j 34 5 63 7 7 6 48 4 4 4 x ve y vektörlerinin elemanlarının değerleri linterp( x, y, 56 ) 64.6 x in 56 değeri için y nin değeri