اطلاعیه

Collapse
No announcement yet.

آموزش ایجاد اعداد مختلط در C++(در میکرو ها....)

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

    آموزش ایجاد اعداد مختلط در C++(در میکرو ها....)

    سلام به همگی.
    کاربردی که اعداد مختلط تو برق و کارای دیگه داره رو همه خوب میدونیم. خیلی وقت ها نیازه تا محاسبات رو به صورت موهومی انجام بدیم. یه روش نوشت یه نوع متغیر هست که این اعداد رو نگه داره ولی تو 30++ ما یه کلاسی داریم که هم این عدد رو برای ما نگه میداره و هم کلی تابع بهمون میده که کار رو ساده تر کنه.
    و اما نحوه ی استفاده!!!!
    اول از همه باید کتابخونه مربوطه رو به برنامه اضافه کنیم:

    #include <complex>


    بعد نوبت اضافه کردن استفاده از فضای std هست:

    using namespace std;


    حالا دیگه راحت میتونیم هر قدر که خواستیم متغیر موهوم تعریف کنیم. نحوه ی تعریف هم اینجوریه:

    complex <double> name;


    اگر هم مقدار اولیه بخوایم بدیم:

    complex<double> name(2.2,3.56);


    از long double هم برای دقت بیشتر میشه استفاده کرد.
    اگز هم بخوایم موقع تعریف مقدار یه عدد دیگه رو به متغیرمون بدیم:

    complex <double> name2 (name);


    حالا بیاید یه برسی برای عملیات اصلی روی اینها انجام بدیم.
    یه متغیر میخوام بسازم که عدد
    10+5 i
    رو نگه داره.

    complex <double> test (10,5);


    اگر بخوام با عدد 10 جمع کنم:

    test+=10;


    همه اینا که برای جمع هست برای بقیه عملیات هم هست. / * - + .خیلی راحت 2 تا عدد موهوم رو به هم تقسیم میکنه.
    در کل مثل عدد معمولی باهاش باید رفتار کرد.
    اگر میخواستیم فقط قسمت موهوم رو بخونیم مینویسیم:

    i=test.imag();

    یا
    i=imag(test);


    که با اجرای هر کدوم از دو دستور بالا مقدار 5i برمیگرده. حالا اگه مقدار صحیح رو خواستیم از یکی از این دو دستور استفاده میکنیم که 10 رو برمیگردونند.

    i=test.real();
    i=real(test);


    خوب این از تعریف متغییر موهوم. یه سری توابع کاربردی هم داره که اونا رو هم میگم. در کل میشه مثل اعداد معمولی با این اعداد ارتباط داشت و از اونا تو برنامه استفاده کرد.
    موفق باشید....
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

    #2
    پاسخ : آموزش ایجاد اعداد مختلط در C++(در میکرو ها....)

    بریم سراغ توابع
    تابع abs
    این تابع خیلی ساده و کاربردی هست. عدد مختلط رو میگیره و مقدار ماژول (طول بردار عدد یا مقدار مطلق) رو برمیگردونه.همون جذر جمع مربعات موهوم و حقیقی
    complex<double> mycomplex (3.0,4.0);
    A=abs(mycomplex);

    همون طور که انتظار میره عدد 5 رو که طول بردار (3,4) هست رو برمیگردونه.
    [hr]
    تابع arg
    این تابع مقدار آرگومان یا همون زاویه ی بردار عدد رو برمیگردونه. همون آرک تانژانت موهوم به حقیقی!
    complex<double> mycomplex (3.0,4.0);
    theta=arg(mycomplex);

    همون طور هم که انتظار میره مقدار 0.927295 رو برمیگردونه. این مقدار آرک تانژانت 1.3333یا(4/3) یرحسب رادیان هست.
    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

    دیدگاه


      #3
      پاسخ : آموزش ایجاد اعداد مختلط در C++(در میکرو ها....)

      تابع conj
      این تابع مقدار مزدوج عدد رو برمیگردونه. همون طور که میدونید مقدار مزدوج یعنی مقدار موهوم قرینه بشه!

      complex<double> mycomplex (10.0,2.0);
      complex<double> mycomplex2;
      mycomplex2=conj(mycomplex)

      lمقدار عدد ما به 10-2 i تغییر کرد.


      توابع sin ,cos ,tan ,sinh ,cosh ,tanh

      فکر کنم دیگه همه با این تابع ها آشنا باشند و نیازی به توضیح نباشه. فقط اینکه همه توابع مثلثاتی این بخش بر حسب رادیان هستند و با اعداد موهوم کار میکنند( با اون توابع مثلثاتی که تو کتابخونه math هست فرق داره. اونا اعداد حقیقی فقط قبول میکنند و اینا فقط اعداد مبهم.)

      تابع exp
      این تابع هم مثل همون تابع exp هست که تو کتابخونه ی math هست با این تفاوت که با اعداد موهوم کار میکنه.



      تابع log و log10
      این هم لگاریتم عدد رو تو پایه ی E و 10 برمیگردونه.

      تابع pow
      این تابع برای به توان رسوندن 2 تا عدد موهوم هست. اولین آرگومان پایه هست و دومین آرگومان توان.

      [hr]
      تابع sqrt
      این تابع هم مقدار جذر عدد رو برمیگردونه.

      این ها کل توابع ریاضی بود که تو این کتابخونه بود. در مورد عملکرد اینها خیلی اطلاع ندارم. مثلا اینکه چطور 2تا عدد موهوم رو به توان میرسونه. برای همین برای این قسمت مثالی نیاوردم.
      [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

      دیدگاه


        #4
        پاسخ : آموزش ایجاد اعداد مختلط در C++(در میکرو ها....)

        2تا تابع رو جا انداختم!!!

        تابع norm
        این تابع مقدار جمع مربعات قسمت حقیقی و موهوم رو برمیگردونه:

        complex<double> mycomplex (3.0,4.0);
        A=abs(mycomplex);


        مقداری که برمیگرده عدد 25 هست که جمع 9 و 16 هست.
        [hr]
        تابع polar

        این تابع خیلی کاربردی هست.با استفاده از اندازه عدد و زاویه اون خود عدد موهوم رو برمیگردونه. آرگومان اول طول بردار عدد هست و آرگومان دوم مقدار زاویه اون(برحسب رادیان)


        lcomplex<double> mycomplex ;
        mycomplex=polar(2,0.5);

        مقدار این دستور میشه عددی که طولش 2 هست و زاویش 0.5 .که اون عدد (1.75517,0.958851) هست.
        اینم از توابع اعداد موهوم. امیدوارم مفید بوده باشه. اگر سوالی بود یا من مطلبی رو اشتباه کردم لطفا بهم بگید.منتطر نظراتتون هستم.
        موفق باشید.
        [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

        دیدگاه

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