با استفاده از تابع std::accumulate در C++ برنامهای بنویسید که حاصلجمع، میانگین و تقریب انتگرال عددی با قاعده ذوزنقهای را برای یک بردار از مقادیر اعشاری محاسبه و نمایش دهد.
8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:21 0.0
در فایل کد از هدر و استفاده کنید؛ برای حاصلجمع از std::accumulate با مقدار اولیه 0.0 (نوع double) بهره ببرید و برای میانگین حاصلجمع را بر اندازه بردار تقسیم کنید. برای تقریب انتگرال به قاعده ذوزنقهای با گامی ثابت h از رابطه I ≈ h*( (f0+fn)/2 + sum_{i=1}^{n-1} f_i ) استفاده کنید — جمع میانی را میتوانید با std::accumulate روی بازه بردار.begin()+1 تا بردار.end()-1 محاسبه کنید. نکات: از نوع double برای دقت عددی استفاده کنید، برای نمایش نتیجه setprecision به کار ببرید و برای دادههای بزرگ میتوانید با توابع موازیتر مثل std::transform_reduce یا execution policyها کارایی را بهتر کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهای کوتاه: برای جمع از std::accumulate با مقدار اولیه 0.0 از نوع double استفاده کنید تا دقت و سازگاری نتیجه حفظ شود. سپس میانگین را با تقسیم حاصل جمع بر اندازه بردار محاسبه کنید و در صورت احتمال صفر بودن اندازه بردار، خطا را کنترل کنید. برای تقریب انتگرال به قاعده ذوزنقهای از I ≈ h*( (f0+fn)/2 + sum_{i=1}^{n-1} f_i ) استفاده کنید و جمع میانی را با std::accumulate روی بازه begin()+1 تا end()-1 بهدست آورید. دادههای بزرگ را میتوانید با استفاده از پروگرمینگ موازی مانند std::execution::par یا std::transform_reduce به کارایی بهتری برسانید.
گزارش