یک برنامه به زبان C بنویسید که انتگرال عددی تابع f(x)=sin(x) را روی بازه [a,b] با روش ذوزنقهای (trapezoidal rule) با n بخش محاسبه کند، زمان اجرای محاسبه را با clock() اندازهگیری کرده و قبل از نمایش نتیجه صفحهٔ کنسول را با system("clear") پاک کند.
5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:41 0.0
برای حل، از حلقهای استفاده کنید که جمع قسمتهای ذوزنقه را محاسبه کرده و حاصلضرب Δx را در مجموع قرار دهد؛ ورودیها a، b و n را از کاربر بگیرید و از نوع double برای دقت استفاده کنید. از headerهای برای sin، برای clock() و برای system("clear") استفاده کنید؛ زمان شروع و پایان را با clock() بگیرید و اختلاف را به ثانیه تبدیل کنید. نکتهها: مقدار n را معتبر (مثلاً n>0) کنید، برای دقت بیشتر n را افزایش دهید و در صورت نیاز میتوانید بعداً این حلقه را با OpenMP برای سرعتافزایی موازیسازی کنید؛ هنگام لینک کردن برنامه از -lm استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای دقت و صحت محاسبهٔ انتگرال با ذوزنقه، dx را برابر (b - a) / n بگذارید و در حلقه مقدار f(a + i*dx) را جمع کنید و سرانجام dx ضرب در مجموع شود. مطمئن شوید از headerهای math.h برای sin، time.h برای clock و stdlib.h برای system استفاده میکنید و مقدار زمان را با (double)(end - start) / CLOCKS_PER_SEC به ثانیه تبدیل کنید. ورودیها را معتبر کنید (n > 0) و اگر a > b بود، میتوانید بازه را جبران کنید یا پیغام خطا بدهید. قبل از نمایش نتیجه با system("clear") صفحهٔ کنسول را پاک کنید و در هنگام کامپایل از کتابخانهٔ ریاضی با -lm لینک بکنید.
گزارش