اطلاعیه

Collapse
No announcement yet.

حل معادله بیضی

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

    حل معادله بیضی

    سلام دوستان من برای حل معادله بیضی و رسو ان تو متلب مشکل دارم
    معادلش هست
    M=E-e.sin(E
    توی این فرمول Mبا e رو داریم و E می خواهیم چطوری حلش کنیم ؟؟؟

    #2
    پاسخ : حل معادله بیضی

    دستور syms و solve رو امتحان کردی؟
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

    دیدگاه


      #3
      پاسخ : حل معادله بیضی

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

      دیدگاه


        #4
        پاسخ : حل معادله بیضی

        نمیشه به صورت پارامتری بر حسب E به دست بیاری.
        کد PHP:
        syms M E e
        solve
        ('M - E + e*sin(E)','E') 
        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
        لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
        با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
        اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
        يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

        دیدگاه


          #5
          پاسخ : حل معادله بیضی

          سلام هادی خان
          جواب رو بصورت پارامتری نمی خوام
          من M ,e رو بهش بدم عددی و مقدار E رو بدشت بیاره

          این solve رو وقتی می زنم این پیغام رو می ده
          syms M E e
          solve('M - E + e*sin(E)','E&#039
          Warning: Explicit solution could not be found.
          > In solve at 169

          ans =

          [ empty sym ]

          دیدگاه


            #6
            پاسخ : حل معادله بیضی

            در این صورت باید از fslove استفاده کنی مثل زیر:
            کد PHP:
            1;
            2;
            = @(E)(M-E+e.*sin(E));
            fsolve(f,1)

            Equation solved.

            fsolve completed because the vector of function values is near zero
            as measured by the default value of the function tolerance, and
            the problem appears regular as measured by the gradient.

            &
            lt;stopping criteria details>


            ans =

              
            2.5542
              
            = @(e,M,E)(M-E+e.*sin(E));
            y(1,2,ans)

            ans =

             -
            2.9793e-007 
            لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
            لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
            با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
            اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
            يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

            دیدگاه


              #7
              پاسخ : حل معادله بیضی

              سلام هادی خان
              مرسی از راهنمایی فقط این یکی از فرمول های کپلر که قراره رسم کنم
              می خواستم بدونم این 1 که نوشتی همون e یا نه و اگر نه چی هست بازم مرسی از راهنماییت.
              fsolve(f,1)

              دیدگاه


                #8
                پاسخ : حل معادله بیضی

                دوباره سلام
                عزیز ببین این درسته متلب
                tan a/2 = sqrt( 1+e / 1-e ). tan E/2
                در این فرمول a را بیابید

                A = sqrt((1+e)/(1-e))* tan (ans/2);
                C=tan(A/2);
                D=atan(C);

                دیدگاه


                  #9
                  پاسخ : حل معادله بیضی

                  نوشته اصلی توسط hameds65
                  سلام هادی خان
                  مرسی از راهنمایی فقط این یکی از فرمول های کپلر که قراره رسم کنم
                  می خواستم بدونم این 1 که نوشتی همون e یا نه و اگر نه چی هست بازم مرسی از راهنماییت.
                  fsolve(f,1)
                  نه. 1 حدس اولیه است که الگوریتم برنامه این عدد را به عنوان جواب اولیه در نظر میگیره و به سمت جواب درست میره. ممکنه با بعضی مقادیر جواب نده مثلاً اگه 0 بذاری به جواب همگرا نمیشه و ممکنه اگه یک عدد دیگه بذاری یکی دیگه از جوابها رو پیدا کنه.
                  چون این معادله غیرخطیه باید از راه عددی حل بشه که مقدار اولیه یکی از محدودیت های روش عددی است.

                  توی این مسأله منظورت از e عدد نپر(اولر) بوده؟ 2.718281828
                  در این صورت باید اونجا که گذاشتم e = 1 هم باید درست کنی و بذاری ;(e = exp(1
                  از مقدار E که توی مرحله قبل به دست اوردی استفاده می کنی؟
                  خط دوم و سوم اشتباهه. این طوری حل میشه:
                  کد PHP:
                  atan(A);
                  2*C
                  لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                  لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                  با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                  اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                  يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                  دیدگاه


                    #10
                    پاسخ : حل معادله بیضی

                    سلام هادی خان
                    این دو تا ادامه همدیگن
                    1. منظور از e عدد نپر نیست یه عددی که تو اول مسئله متلب از کاربر می پرسه که عددش کمتر از1
                    2. E , e دو متغیر جداگانه اند
                    3. بعد از بدست آوردن E تو معادله اول که با fsolve بدست آوردی (مرسی) باید teta رو بدست بیارم با این فرمول
                    tan teta/2 = sqrt( 1+e / 1-e ). tan E/2

                    دیدگاه


                      #11
                      پاسخ : حل معادله بیضی

                      پس جواب همونه که نوشتم.
                      کد PHP:
                      1;
                      2;
                      = @(E)(M-E+e.*sin(E));
                      fsolve(f,1)

                      Equation solved.

                      fsolve completed because the vector of function values is near zero
                      as measured by the default value of the function tolerance, and
                      the problem appears regular as measured by the gradient.

                      &
                      lt;stopping criteria details>


                      ans =

                        
                      2.5542
                        
                      = @(e,M,E)(M-E+e.*sin(E));
                      y(1,2,ans)

                      ans =

                       -
                      2.9793e-007

                      sqrt((1+e)/(1-e))* tan (ans/2);
                      atan(A);
                      theta 2*C

                      لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                      لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                      با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                      اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                      يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                      دیدگاه


                        #12
                        پاسخ : حل معادله بیضی

                        هادی خان عدد e هر بار تغییر می کنه بجاش همن ث رو بزارم یا همون 1و2 بمونه
                        y(1,2,ans)
                        یه چیز دیگه تو این فرموله E رو قبول نمی کنه ans گذازشتم
                        y = @(e,M,E)(M-E+e.*sin(E));

                        دیدگاه


                          #13
                          پاسخ : حل معادله بیضی

                          راستی این دورسته

                          r=p/(1+e.cos theta)

                          r=p/(1+e*cos(theta));

                          دیدگاه


                            #14
                            پاسخ : حل معادله بیضی

                            y لازم نیست. فقط گذاشتم که از درستی جواب مطمئن بشی. میتونی این دستورات زیر رو توی حلقه بذاری که هر دفعه مقدار e عوض میشه.
                            کد PHP:
                            1;
                            2;
                            = @(E)(M-E+e.*sin(E));
                            fsolve(f,1);

                            sqrt((1+e)/(1-e))* tan (E/2);
                            atan(A);
                            theta 2*C


                            نوشته اصلی توسط hameds65
                            راستی این دورسته

                            r=p/(1+e.cos theta)

                            r=p/(1+e*cos(theta));
                            به نظر درست میاد. امتحان کن.
                            لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                            لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                            با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                            اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                            يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                            دیدگاه


                              #15
                              پاسخ : حل معادله بیضی

                              مرسی هادی اینا درست بود
                              حالا بین بیضیه چرا این طوریه این کد ها رو بزار تو متلب ببین :angry: :angry: :angry:
                              clear

                              rmin=5;
                              rmax=10;



                              a=(rmax+rmin)/2;
                              b=sqrt(rmax*rmin);
                              e=(rmax-rmin)/(rmax+rmin);
                              p=a*(1-e^2);
                              %E%
                              ts1=0:1/10:2*pi+0.02;


                              m=3.987*(10^14);
                              T=2*pi*(sqrt((a^3)/m));
                              M=2*pi*ts1/T;

                              f = @(E)(M-E+e.*sin(E));
                              fsolve(f,1);

                              A = sqrt((1+e)/(1-e))* tan (ans/2);
                              C = atan(A);
                              D = 2*C;

                              r=p/(1+e*cos(D));


                              %Satellite%

                              ts=0:1/20:2*pi;
                              xs=+a*cos(ts)-b*sin(ts);
                              ys=+b*sin(ts)+a*cos(ts);

                              %Center%
                              t=0;
                              xo=0*cos(t);
                              yo=0*sin(t);

                              %Circle min%
                              tm=0:1/10:2.5*pi;
                              rmin=p/(1+e);
                              xm=rmin*cos(tm);
                              ym=rmin*sin(tm);

                              %Circle Max%
                              tM=0:1/10:2.5*pi;
                              rmax=p/(1-e);
                              xM=rmax*cos(tM);
                              yM=rmax*sin(tM);

                              %Satellite%
                              plot(xs,ys,'g*&#039
                              hold on
                              %Center%
                              plot(xo,yo,'.&#039
                              hold on
                              %Circle min%
                              plot(xm,ym,'k--&#039
                              hold on
                              %Circle Max%
                              plot(xM,yM,'m.-&#039
                              hold on
                              axis equal;



                              دیدگاه

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