ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12
  1. #1
    2010/01/12
    87
    3

    توابع مثلثاتی در mikroc و بکارگیری آنها در محاسبات

    سلام دوستان
    به سنوس اینورس و کسینوس اینورس و تانژانت اینورس خیلی نیاز دارم در mikro c
    در زبان c این توابع رو چگونه می نویسن؟
    با سپاس
  2. #2
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : تابع cos^-1

    سلام.به Help نرم افزار مراجعه کنين.اگه پاسخ مناسبي براش نداشت، مقادير رو تو يه ماتريس ثابت بنويسين و اون رو فراخواني کنين.البته اگه بازه ي تغييرات زاويه مشخص و رند باشه.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2010/01/12
    87
    3

    پاسخ : تابع cos^-1


    الان مقدار رو دارم که یک عدد کوچکتر از یک است و حالا می خوام تبدیلش کنم به زاویه - تو help چیزی مشاهده نکردم در موردشون
  4. #4
    2009/05/05
    957
    156

    پاسخ : تابع cos^-1

    ميتوني برنامه اش رو براساس بسط مک لورن توابه معکوس بنويسي.
    فقط يکم زمان پردازش بيشتري ازت ميگيره
    يا اگر هم حوصله نداري برو توي فايل کتابخونه ي math.h از کامپايلر کدويژن کدهاي مربوط به توابع رو بردار و يکم دستکاريشون کن تا توي ميکرو سي هم جواب بده
    ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ*هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ*ها، خاطره همتآ*هاى بلند را از يادها محو كرده است. (نهجآ*البلاغه، خطبه211)

    امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)
  5. #5
    2013/02/25
    مشهد
    180
    33

    پاسخ : تابع cos^-1

    سلام

    با احترام اجازه بدهيد تا چند مطلب را با هم مرور کنيم :

    خيلي خلاصه خدمت تان عرض کنم که من خودم به همين مورد برخورد کرده ام. همانطور که صد البته مي دانيد ، PIC ها نمي توانند توابع معکوس مثلثاتي را به عنوان يک تابع مستقل (يعني مثل تابع سينوس يا تانژانت) محاسبه کنند . این ربطی به اینکه از کدام محیط استفاده می فرمائید ندارد.
    همانطور که جناب آقاي مهندس مستقيمي ، مدير محترم گروه اشاره فرمودند مي توانيد از ماتريس استفاده کنيد و روش ديگر اين است که بايد به کمک رشته ها و محاسبات عددي اين مقادير را به دست بياوريد.

    يک روش که در ماشين حساب ها استفاده مي شود ، استفاده از سري هاي نا متناهي و محاسبه اين گونه سري هاست . به عنوان نمونه



    و همانطور که باز هم مطمئناً مي دانيد براي سينوس و کسينوس مقدار Z بين 1+ تا 1- است. بسته به اينکه چه دقتي برايتان مطلوب است مي توانيد تعدادي متناهي مثلا پنج ، ده ، بيست جمله اول را فقط حساب کنيد.
    يک مشکل ديگر که ممکن است پيدا شود اين است که PIC ها نمي توانند اعداد شناور (مميز دار) را محاسبه کنند. اما با تکنيک ها و روش هايي محاسبه اعداد شناور يا مميز دار در PIC امکان پذير است اما دقت خيلي خوبي حاصل نخواهد شد.

    به عنوان بيان يک مثال خيلي ساده : اگر اعداد شناور را ابتداي کار 100 برابر بزرگ کنيد (ضرب در 100) ، دو رقم سمت راست بعد از مميز ؛ از قسمت شناور Floating Point به قسمت صحيح عدد Integer منتقل مي شوند آنگاه محاسبات را انجام ميدهيد و در انتها دو رقم سمت راست را با يک مميز ساختگي به صورت شناور نمايش مي دهيد. اين کار هم خيلي جالب نيست چون که متغيرها ابعاد و اندازه دارند و نمي توانند از حد استانداردشان 8 بيت يا 16 بيت فراتر بروند. شايد هم 32 بيت بسته به اينکه کدام مدل از خانواده PIC را انتخاب مي کنيد.

    مطلب بعدي اين است که اگر امکان منفي شدن يک عدد محتمل باشد. باز ابعاد اعداد قابل ذخيره در متغيرها کوچکتر مي شوند يعني شما از صفر تا 255 + را در 8 بيت جاي مي دهيد اما اگر احتمال منفي شدن باشد ( که اينجا هست !! )متناسب با آن محدوده کار از 128- تا 127+ در 8 بيت خواهد بود که اين خود نوعي محدوديت است. يعني براي ذخيره 129 شما 16 بيت نياز داريد.

    نکته بعدي اين است که با در نظر گرفتن متغيرهاي بزرگتر ، به دليل محدوديت هاي سخت افزاري حافظه ، ممکن است برنامه بعد از کامپايل Compile شدن در PIC جاي نگيرد.

    صد البته بايد مواظب بود که متغير ها سرريز (Overflow) نشوند.

    فکر مي کنم که اگر خواستيد که نتيجه را به درجه نشان بدهيد بايد دوباره مقادير را از راديان به درجه تغيير دهيد. چون سري ها نتايج شان براي راديان است. براي اين مورد بيشتر بررسي بفرمائيد و اما نکته خيلي مهم اين مورد را هم مد نظر قرار دهيد که :

    به ازاي يک x يکتا در توابع وارون مثلثاتي مي*توان چندين y پيدا کرد که به ازاي آن تابع وارون مثلثاتي ما (آرک ) معتبر است ، مانند آرک سينوس صفر، که زاويه جواب π و 2π است به ازاي همهٔ آن*ها مقدار سينوس يا x برابر با صفر است و اين به اين معني است که تابع وارون سينوس يا arcsin مي*تواند مي*تواند چندين جواب داشته باشد درحالي که اين خلاف مفهوم تابع بودن است. براي همين براي تمامي تابع*هاي وارون مثلثاتي محدوديت بُرد يا خروجي قرار مي*دهيم تا به ازاي يک ورودي چندين خروجي نداشته باشند.

    دو تابع زير نمونه هايي براي محاسبه کسينوس معکوس و تانژانت معکوس با استفاده از سري هاي نامتناهي هستند :





    فقط به عنوان يکي از مراجع در دسترس ، مطالب بيشتر در باره سري ها را مي توانيد در ويکي پديا ببينيد :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مزيد بر قدرشناسي است و بسيار بسيار خوشحال مي شوم که نتيجه کارتان را براي استفاده بنده و ديگران به اشتراک بگذاريد.

    همگی موفق باشیم
    والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

    هوشمندانه بپرسيد...
  6. #6
    2010/01/12
    87
    3

    پاسخ : تابع cos^-1

    مرسی مهندس رضا و مهندس مستقیمی
    من تابع رو بر اساس این فرمول ها می نویسم
    در این پروژه هدف این است مقدار power factor خط شناسایی شود (که شناسایی کردم) . حال نیاز دارم زاویه اون رو پیدا کنم که بتوانم بر اساس فرمول خازن مورد نیاز خط و همچنین راکتانس مورد نیازخط رو محاسبه کرده و در اختیارمان قرار دهد.
    کاشکه بین بچه ها کسی می بود که یک کتابخانه قدرتمند ریاضیات برای میکروکنترلر ها pic می نوشت - عیبی نداره - خودمون می نویسم
    همگی موفق باشیم - حتما نتیجه رو در اختیار عموم قرار می دم.
  7. #7
    2010/01/12
    87
    3

    پاسخ : تابع cos^-1

    دوستان توابع سینوسی و کسینوسی به فرم زیر تعریف می شود
    du1 = cosE3(80); که نتیجه روی میکرو به صورت ممیزی نشان نمی دهد مثلا کسینوس 80 رو به فرم 174 نشان می دهد در حالی که جواب : 0.174 است برای همین از متن ثابت که دارای 0. است استفاده کردم که برای نشان دان مقدار خوب است ولی در محاسبات چیزی رو عوض نمی کند.
    این مشکلی است که بهش برخورد کردم - برای اینورس از asin , acos باید استفاده کردکه در کتابخانه موجود می باشد
    کد:
    int aT1[1];
    double du1;
    
    int aT2[1];
    double du2;
    void main(){ Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF);
    
     while(1)
     {
    
       du1 = cosE3(80);
       wordTostr(du1, aT1);
       Lcd_Out(1,1,"cos: 0.");
       Lcd_Out(1,8,aT1);
    
       du2 = sinE3(80);
       wordTostr(du2, aT2);
       Lcd_Out(2,1,"sin: 0.");
       Lcd_Out(2,8,aT2);
    
     }}
  8. #8
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : تابع cos^-1

    منغير رو به شکل float تعريف کنين ببينين درست ميشه؟ اگه نشد هم خودتون به شکل دستي تقسيم بر 100 کنين و بعد تبديل به رشته کنين و نمايش بدين.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  9. #9
    2010/01/12
    87
    3

    پاسخ : تابع cos^-1

    خوب کدها به شکل زير تغيير پيدا کرد :
    کد:
    float aT1[10];
    double du1;
    
    float aT2[10];
    double du2;
     while(1)
     {
       du1 = cosE3(80)*0.001;
       floatTostr(du1, aT1);
       Lcd_Out(1,1,"cos:");
       Lcd_Out(1,6,aT1);
        
       du2 = sinE3(80)*0.001;
       floatTostr(du2, aT2);
       Lcd_Out(2,1,"sin:");
       Lcd_Out(2,6,aT2);
     }
    و جواب به شکل زير بود براي سينوس و کسينوس :
    sin : 9.849999 e-1
    cos:1.739999e-1
  10. #10
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : تابع cos^-1

    نقل قول نوشته اصلی توسط mehdiravanbod
    خوب کدها به شکل زير تغيير پيدا کرد :
    کد:
    float aT1[10];
    double du1;
    
    float aT2[10];
    double du2;
     while(1)
     {
    
       du1 = cosE3(80)*0.001;
       floatTostr(du1, aT1);
       Lcd_Out(1,1,"cos:");
       Lcd_Out(1,6,aT1);
       
       
       du2 = sinE3(80)*0.001;
       floatTostr(du2, aT2);
        Lcd_Out(2,1,"sin:");
       Lcd_Out(2,6,aT2);
     }

    و جواب به شکل زير بود براي سينوس و کسينوس :
    sin : 9.849999 e-1
    cos:1.739999e-1
    و اين جوابها يعني نتيجه ي دلخواهتون رو بدست آوردين؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12

موضوعات مشابه

  1. پاسخ: 55
    آخرين نوشته: 2015/08/02, 18:58
  2. توابع مثلثاتی در atmega16
    توسط PRJB76 در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2014/01/21, 18:07
  3. کتاب خانه توابع مثلثاتی رو کسی داره ؟؟
    توسط mohsen.hex در انجمن پروسسورهای ARM
    پاسخ: 1
    آخرين نوشته: 2012/07/25, 08:13
  4. بکارگیری wiggler توسط نرم افزار keil
    توسط فرشاد اکرمی در انجمن پروسسورهای ARM
    پاسخ: 5
    آخرين نوشته: 2011/01/26, 09:47
  5. بکارگیری فن با استفاده از برق شهر
    توسط bahreini در انجمن مدار هاي ديجيتال
    پاسخ: 17
    آخرين نوشته: 2008/04/16, 23:49

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •