|
Integrallarni taqribiy hisoblashda Gauss formulalari
|
bet | 3/4 | Sana | 15.05.2024 | Hajmi | 403,44 Kb. | | #234027 |
Bog'liq Algorim Abror.UralovIntegrallarni taqribiy hisoblashda Gauss formulalari.
Gauss formulalari, bir funksiya integrallarini yaklashtirish uchun ishlatiladigan formulalardan biridir. Bu formulalar, n taqsimlangan integralni hisoblashda barcha bo'shliqlar teng tartibda joylashtirilgan Chebyshev polinomlarini ishlatadi. Gauss formulalari quyidagi formulalar yordamida ifodalangan:
n taqsimlanuvchi formulaga ko'ra, bir funksiyaning integrallarining hisoblanishi ∫ a^b f(x) dx ≈ ∑ wi f(xi) formula orqali ifodalangan, burada wi va xi - n taqsimlanuvchi integral uchun ko'rsatkichlar, a va b esa integrallarning chegaralari. Gauss formulalari bu ko'rsatkichlarni hisoblashda ishlatiladi. Gauss formulalari haqida ko'proq tushuntirish uchun quyidagi qadam-qadam ko'rsatmalarni bajaring:
Birinchi bosqichda, x = -1 dan x = 1 gacha bo'lgan bo'shliqlarni toping, ya'ni xi = cos((2i-1)π / 2n), i = 1, 2, ..., n. Keyin, Chebyshev polinomlari yordamida ko'rsatkichlarni toping, ya'ni wi = 2 / [(1 - xi^2)Tn'(xi))^2], i = 1, 2, ..., n, bu yerda Tn(x) n-turli Chebyshev polinomidir. Keyin, integrallarni Gauss formulasi yordamida hisoblang, ya'ni ∫ a^b f(x) dx ≈ ∑ wi f(xi)Gauss formulalari integrallar hisoblanishida juda yaxshi natija beradi va barcha n uchun to'g'ri javob beradi. Lekin, bu formulalarning barcha funksiyalar uchun juda yaxshi natija beradi deb aytib o'tilmasligi mumkin, shuning uchun, boshqa usullar bilan yoki tartib bilan integrallarni hisoblash kerak bo'lishi mumkin.
Birinchi bosqichda, x = -1 dan x = 1 gacha bo'lgan bo'shliqlarni toping, ya'ni xi = cos((2i-1)π / 2n), i = 1, 2, ..., n. Keyin, Chebyshev polinomlari yordamida ko'rsatkichlarni toping, ya'ni wi = 2 / [(1 - xi^2)Tn'(xi))^2], i = 1, 2, ..., n, bu yerda Tn(x) n-turli Chebyshev polinomidir. Keyin, integrallarni Gauss formulasi yordamida hisoblang, ya'ni ∫ a^b f(x) dx ≈ ∑ wi f(xi)Gauss formulalari integrallar hisoblanishida juda yaxshi natija beradi va barcha n uchun to'g'ri javob beradi. Lekin, bu formulalarning barcha funksiyalar uchun juda yaxshi natija beradi deb aytib o'tilmasligi mumkin, shuning uchun, boshqa usullar bilan yoki tartib bilan integrallarni hisoblash kerak bo'lishi mumkin.
KODI:
#include
#include
double f(double x) {
return x*x; // Integralni hisoblash kerak bo'lgan funksiya
}
double simpson(double a, double b, int n) {
double h = (b - a) / n;
double sum = f(a) + f(b);
for (int i = 1; i < n; i += 2) {
sum += 4 * f(a + i * h);
}
for (int i = 2; i < n-1; i += 2) {
sum += 2 * f(a + i * h);
}
return h / 3 * sum;
}
int main() {
double a = 0.0; // Integrallashning boshlang'ich qiymati
double b = 1.0; // Integrallashning tugashi qiymati
int n = 100; // Qancha chegaralarni bo'limlamoqchimiz
double result = simpson(a, b, n);
std::cout << "Taqribiy integral natijasi: " << result << std::endl;
return 0;
}
|
| |