اطلاعیه

Collapse
No announcement yet.

سریع ترین راه برای گرفتن ArcCos تا n رقم اعشار ( X منصرف از نتیجه X )

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #31
    پاسخ : سریع ترین راه برای گرفتن ArcCos تا n رقم اعشار ( X منصرف از نتیجه X )

    یه سری به کتابهای محاسبات عددی بزن.
    تو اون کتابها چند روش بسط توابع به تعدادی ضرب و جمع و توان رو بحث کرده است.
    حتی ماکزیمم خطا رو هم میتونی تنظیم کنی.
    www.eeep.ir

    دیدگاه


      #32
      پاسخ : سریع ترین راه برای گرفتن ArcCos تا n رقم اعشار ( X منصرف از نتیجه X )

      با سلام
      بچهآ‌ها به یک نکته دقت کنید. طراح سوال میآ‌خواهد تا n رقم اعشار دقت در محاسبه داشته باشد علاوه بر آن سریعآ‌ترین روش هم باشد. نکتهآ‌ای که به نظرم فراموش شده است (به احتمال قوی، در جواب مورد نظر طراح محترم هم این نکته در نظر نگرفته نشده است!)، دقت محاسبات است. شما بر اساس اندازه محاسبات به یه حداکثر دقت میآ‌توانید دست پیدا کنید. به عنوان مثال دقت در یک عدد fixed-point که طول ۸ بیت دارد مثلا ممکن است تا ۷ رقم اعشار (در مبنای دو) باشد و در استفاده از ممیز شناور در حالت ۳۲ بیتی دقت قسمت اعشار ۲۳ رقم است. حالا فرض کن شما یک روال محاسبه داری که با افزایش مراحل انجام اون میآ‌تونی تا بیآ‌نهایت دقت بری جلو ولی اون چیزی که شما رو محدود میآ‌کنه دقت محاسباته (شاید اگر از اعداد با ممیز شناور ۳۲ بیتی استفاده شود دقت در حدود مثلا ۲۰ رقم باشد و اگر از اعداد double دقت حدود ۵۰ رقم اعشار باینری). اگر درس محاسبات عددی رو پاس کرده باشید (البته من خودم این درس رو نداشتم!) فرمولآ‌هایی که به صورت بازگشتی مقادیر عددی رو محاسبه میآ‌کنند از لحاظ تئوری محدودیتی در دقت ندارند ولی چیزی که ما رو محدود میآ‌کنه خطای تجمعی است (خطایی که در هر مرحله اضافه میآ‌شود)، به شکل ملموس تر با دقت اعشاری حداکثر ۵۰ رقم نمیآ‌توان عددی با دقت ۱۰۰ رقم اعشار تولید کرد.
      یه مثال:
      در لینکی که آقای خان ملک فرستادند یک روش بر اساس شیفت و جمع معرفی شده بود (البته من دقیق جزئیاتش رو نخوندم). حالا اگر بخواهیم این روش رو توی AVR پیاده کنیم و n مورد نظر طراح محترم حدود ۱۰۰ رقم باشد و اعداد رو ممیز ثابت در نظر بگیریم، با یه محاسبه سر انگشتی هر عدد ما حدود ۳۰۰ بیت (حدود ۴۰ بایت) طول خواهد داشت و احتمالا جمع و شیفت حدود ۲۰۰ (یک سایکل برای جمع و چهار سایکل برای انتقال دو عدد از/به حافظه و مابقی سربار محاسبات و شمارش و ...) سایکل زمان نیاز دارند. حالا اگر روال الگوریتم مشخص باشد، سرعت و حافظه مصرفی به راحتی قابل تخمین زدن است.
      من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

      دیدگاه


        #33
        پاسخ : سریع ترین راه برای گرفتن ArcCos تا n رقم اعشار ( X منصرف از نتیجه X )

        این تو فولدر sample های بیسیک بودش.

        به درد میخوره یا نه؟

        $regfile = "m88def.dat" ' specify the used micro
        $crystal = 8000000 ' used crystal frequency
        $baud = 19200 ' use baud rate
        $hwstack = 32 ' default use 32 for the hardware stack
        $swstack = 10 ' default use 10 for the SW stack
        $framesize = 40 ' default use 40 for the frame space

        Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0


        Dim S As Single , X As Single
        X = 0.55454256 : S = Acos(x)
        Print S
        End
        www.icesi.ir

        دیدگاه

        لطفا صبر کنید...
        X