Fortran 90'da, bir matematiksel işlevi bir değişkenle belirli bir sınır dahilinde sayısal olarak birleştirmek istiyorum. Örneğin, f (x) = x ** 2'yi 0'dan 10'a entegre etme. Sahip olduğum işlev bundan daha karmaşıktır ve entegrasyon limitlerini değiştirerek birkaç kez çalıştırmak zorundayım. İnternette, 'QUADPACK' kütüphanesinin bana bu konuda yardımcı olabileceğini öğrendim. Ancak bu kütüphaneyi kodumda arayabilmek için nasıl kurabilirim? Gelişmiş talimatları hızlı bir şekilde takip edemeyeceğim gibi bazı ayrıntıları sağlayın.Fortran'da sayısal bütünleşme
cevap
x^2'yi entegre etmek için orta nokta yönteminin kullanıldığı basit bir program sağladım. Bu çalışmalı, daha karmaşık bir formül bu kadar uzun örgü yeterince iyi, girilebilir (ve işlev pürüzsüz) ..
program integrate
implicit none
integer,parameter :: cp = selected_real_kind(14)
integer,parameter :: N = 1000
real(cp),dimension(N) :: f,xc
real(cp),dimension(N+1) :: x
real(cp) :: s,xmax,xmin,dx
integer :: i
xmin = 0.0_cp
xmax = 10.0_cp
dx = (xmax - xmin)/real(N,cp)
x = (/(xmin + dx*(i-1),i=1,N+1)/)
! Define x at center
do i=1,N
xc(i) = x(i) + 0.5_cp*dx
enddo
! Define f
do i=1,N
f(i) = xc(i)**2
enddo
! Integrate (Midpoint method)
s = 0.0_cp
do i=1,N
s = s + f(i)*dx
enddo
write(*,*) 'sum = ',s
end program
Bu tanımda selected_real_kind öğesinin kullanılmasını sağlamak için x ** 2.0_cp kullanıyorum. Geçmişte sadece 2.0, hatta gerçek (2.0, cp) kullanarak sorunlar yaşadım. – Charlie
@francescalus sizin örneğinizde bazı parantezler gerekir .. '-1.0_cp ** 2' -1.0' dır .. Eğer bir şeyi kare demek istiyorsanız tamsayı 2 kullanın. – agentp
Tamam, bilmiyordum teşekkürler Cevabı ben düzenleyeceğim. – Charlie
- 1. jenkins Görsel stüdyo ekip hizmetleriyle bütünleşme
- 2. sayısal tuşları
- 3. Sayısal kareler
- 4. MySQL - varchar sütunu sadece sayısal olmayan (alfa sayısal) seçmek istediğiniz
- 5. Sayısal alan Simple_form_for
- 6. WebView'de sayısal klavyeyi göster
- 7. Scala Yazma: Sayısal Tipi
- 8. Sayısal diziden sözlük oluşturma
- 9. Bash true sayısal sipariş
- 10. iPad sayısal klavye
- 11. Sayısal alan, SQLite'de TFDQuery
- 12. Sayısal dizide maskeleme değerleri
- 13. SQL * Plus - sayısal sütunun
- 14. Nasıl mantıksal sayısal alan
- 15. Sayısal dizinin çevresini hesapla
- 16. Sayısal olarak ortogonal projeksiyon
- 17. Dosyaları sıralama sayısal bash
- 18. Sütundaki sayısal değerlerin sayılması
- 19. Sayısal dizilerin yeniden düzenlenmesi
- 20. Sayısal dizinin ortalaması, NaN
- 21. PySNMP'de sayısal OID sorgulama?
- 22. Sayısal eğri eğri
- 23. python kısmi türevleri, Sayısal
- 24. Sayısal dizilerde değerleri birleştirmek
- 25. sayısal dizi sıralaması()
- 26. C# Sayısal TextBox - WPF
- 27. MiscUtils Operatör - çarpma sayısal alan
- 28. JSpinner'ı tam olarak sayısal yap
- 29. Bir sayısal özellik nasıl erişilir?
- 30. Java, sayısal olmayan karakterleri x
https://en.wikipedia.org/wiki/Trapezoidal_rule veya https: //en.wikipedia.org/wiki/Simpson's_rule her ikisi de kendi kendini uygulamak için oldukça basittir –
Lütfen kullandığınız denklem hakkında daha fazla bilgi verin, kullandığınız işletim sistemini kullanın, böylece bu talimatlar sizin için yanıtlanabilir. özel durum. Bu daha yararlı olur. – Charlie
@ Charlie- Bunu herhangi bir genel denklem için bilmek isterim. Örneğin, bir * x ** 2 + b * x + c ile l1 ila l2 arasındaki limitlerin entegrasyonu a, b ve c'nin sabit olduğu yerlerdir. Bir dizi l1 ve l2 var, yani bu denklemi bir dizi sınırda birçok kez birleştirmem gerekiyor. – NewToFortran