اطلاعیه

Collapse
No announcement yet.

برنامه نویسی برای ماتریس

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • برنامه نویسی برای ماتریس

    سلام
    اقا کسی می تونه این رو سریع با C برام بنویسه
    یه برنامه که ماتریس بهش بدیم حداکثر 20*20 و به ما ماتریس معکوسش رو بده
    مرسی

  • #2
    MAPLE 10 استفاده کن
    البته اگر بخای میشه دستی هم کار کرد ولی 20 معادله 20 مجهول میشه کمی طول داره
    اگر هم خواستی راهش به این شکل هستکه هر درایه ماتریس رو a, b,c,....... تعریف می کنی و بعدشم دستگاه 20 معادله و مجهول میده که با جایگزاری می شه حلش کرد
    مهندسای قدیم با دست قبلا 1000 تاییشو حل می کردند
    اگر maple جواب نداد matlab joomla va ................. هستند
    البته تا جایی که یادمه 2*2 اینجوری بود
    A^(-1)=1/det(A)*[d,-b]
    -c,a
    شاید تونستی روی کاغذ تعمیمش بدی
    یه سوال:ماترسی 20*20 به چه دردت می خوره می خوای پل بسازی!!!!!!!

    Comment


    • #3
      سلام
      من خيلي c بلد نيستم و گر نه مي نوشتم
      ولي اين مي تونه كمك زيادي بكنه
      http://www.nrbook.com/a/bookcpdf.php
      اين قسمت رو نگاه كن Is Matrix Inversion an N^3 Process
      http://www.nrbook.com/a/bookcpdf/c2-11.pdf
      به طور كلي اين كتاب معركه هست و خيلي وقت ها به درد من خورده
      نسخه فورترن هم داره
      اگه فقط مي خواي محاسبه خالي انجام بدي و كدش مهم نيست matlab رو فراموش نكن
      اگه matlab نداري اعدادش رو بفرست برات حساب كنم
      اميدوارم كه مفيد بوده باشه
      Last edited by h27; 12-30-2006, 11:41 PM.
      ¯/(°_o)\¯
      بیچاره آن کسی است که گرفتار عقل شد **** آسوده آن کسی است که خر آمد و الاغ رفت
      این چه شوری است که در دور قمر می بینم **** همه آفاق پر از فتنه و شر می بینم
      اسب تازی شده مجروح به زیر پالن **** طوغ زرین بر گردن خر می بینم
      Copyright: Enigma2

      به اميد شبگردي بهتر

      Comment


      • #4
        فکر کنم اشتباه کردم ویرایشم که بستست
        400 معادله 400 مجهول می شه !!!!!
        من الان 10*10 شو دادم maple ابر کامپیوتر که ندارم 15 Min هست داره تفکر می کنه

        Comment


        • #5
          کد:
          /*
            Name: Matrix
            Copyright: 2006-2007 by shabgard 
            Author: -Ehsan-
            Date: 30/12/06 18:08
            De******ion: ;)
          */
          
          #include <iostream.h>
          #include <conio.h>
          void mInput(int [][2], int);
          void mCal(int mat[][2], int);
          
          int main(){
              const int r=3,c=2 ;
              int mat[r][c];
              
              mInput(mat, r);
              mCal(mat, r);
              getch();
              return 0;
          }
          
          void mInput(int mat[][2], int r)
          {
               int i,j;
               for (i = 0;i<r;i++)
                   for (j=0;j<2;j++){
                       cout<<"Enter mat["<<i<<"]["<<j<<"]:";
                       cin>>mat[i][j];}
           }
          
          void mCal(int mat[][2], int r)
          {
              int i,j,rmax;
              cout<< "ROW \t\tMAX";
              cout<< "\n---------------";
                   for (i=0;i<r;i++){
                      rmax=mat[i][0];
                       for (j=1;j<2;j++)
                          if(mat[i][j]>rmax)
                             rmax=mat[i][j];
              cout<<'\n'<<(i+1)<<"\t\t"<<rmax;
             }
          }
          اقا اینا برات نوشتم الته این ماترس 2*3 البته معکوسا ایناشو نمیدونم...آخه فرمول ریاضیشو بلد نبودم... ریاضیم خیلی بده :D
          حالا خودت هم که PHP بلدی خیلی شیبه c هست... بخون کد را دستکاریش کن بکن همون که می خوای
          برای بالا بردن تعداد ماترس هم این کارا بکن
          مثلا 20*20 هرچی عدد 2 هست را بکن 20 و متغیر r را هک بکن 20
          میخوای زبان برنامه نویسی انتخاب کنی ؟؟ پست نزن اینجا کلیک کن

          Comment


          • #6
            نوشته اصلی توسط -Ehsan-
            اقا اینا برات نوشتم الته این ماترس 2*3 البته معکوسا ایناشو نمیدونم...آخه فرمول ریاضیشو بلد نبودم... ریاضیم خیلی بده :D
            سلام
            خداييش رياضياتت بده
            ماتريس 2*3 كه معكوس نداره :eek:
            تازه اگه اين برنامه معكوس حساب نمي كنه پس چي حساب مي كنه؟ ;)
            ¯/(°_o)\¯
            بیچاره آن کسی است که گرفتار عقل شد **** آسوده آن کسی است که خر آمد و الاغ رفت
            این چه شوری است که در دور قمر می بینم **** همه آفاق پر از فتنه و شر می بینم
            اسب تازی شده مجروح به زیر پالن **** طوغ زرین بر گردن خر می بینم
            Copyright: Enigma2

            به اميد شبگردي بهتر

            Comment


            • #7
              تا جایی که من یادمه معکوس ماتریس (تابع) به دترمینان اون بستگی داره و ماترسی های غیر مربعی دترمینان ندارند => معکوس پذیر نیستند!!!!!
              =>من که نفهمیدم چجوری برنامه نوشتید

              Comment


              • #8
                نوشته اصلی توسط arsalan1991
                فکر کنم اشتباه کردم ویرایشم که بستست
                400 معادله 400 مجهول می شه !!!!!
                من الان 10*10 شو دادم maple ابر کامپیوتر که ندارم 15 Min هست داره تفکر می کنه
                سلام
                نه
                ميشه 20 معادله و 20 مجهول
                ¯/(°_o)\¯
                بیچاره آن کسی است که گرفتار عقل شد **** آسوده آن کسی است که خر آمد و الاغ رفت
                این چه شوری است که در دور قمر می بینم **** همه آفاق پر از فتنه و شر می بینم
                اسب تازی شده مجروح به زیر پالن **** طوغ زرین بر گردن خر می بینم
                Copyright: Enigma2

                به اميد شبگردي بهتر

                Comment


                • #9
                  آقا یکی فرمول بده ... و طرز راه حل را تا من ببینم می تونم بنویسم یا نه...
                  باید کلاس ریاضی هم برم در اسرع وقت :d :d
                  میخوای زبان برنامه نویسی انتخاب کنی ؟؟ پست نزن اینجا کلیک کن

                  Comment


                  • #10
                    با کامپیوتر معمولی عمراَ اگر حل بشه
                    30 Min نگه داشتم cpu سوخت!!!!دود اومد بیرون ازش
                    باید بری به دانشگاه(وارد نیستم کجا)
                    ابرکامپیوتر اجاره کنی چون با کامپیتر معمولی پدر در میاره(شاید مدل کامپیوتر من خیلی خیلی پایینه) ولی به هر حال بهتره یکم از trick های ریاضی بهره ببری و استفاده کنی
                    در ضمن منم اول فکر کردم 20 تا 20 تا هست ولی برای هر درایه یک معادله پدید می آید
                    تعداد درایه ها = 20*20 =400
                    مثال:2*2 معکوسش رو اگر به دست آورده باشه 4 معادله 4 مجهول هست

                    Comment


                    • #11
                      نوشته اصلی توسط -Ehsan-
                      آقا یکی فرمول بده ... و طرز راه حل را تا من ببینم می تونم بنویسم یا نه...
                      باید کلاس ریاضی هم برم در اسرع وقت :d :d
                      اين خود كد هست
                      http://www.nrbook.com/a/bookcpdf/c2-11.pdf
                      ولي باز هم ببين شايد احتياج به اصلاح داشته باشه
                      اول بايد دترمينان رو حساب كني كه خودش ميشه يك دنيا كار
                      بعد بايد ماتريس ترانهاده حساب كني
                      بعد بايد عكس دترمينان رو درش ضرب كني
                      اگه اشتباه نكرده باشم
                      بعد ماتريس معكوس به دست مي ياد
                      البته كار آسوني نيست
                      ¯/(°_o)\¯
                      بیچاره آن کسی است که گرفتار عقل شد **** آسوده آن کسی است که خر آمد و الاغ رفت
                      این چه شوری است که در دور قمر می بینم **** همه آفاق پر از فتنه و شر می بینم
                      اسب تازی شده مجروح به زیر پالن **** طوغ زرین بر گردن خر می بینم
                      Copyright: Enigma2

                      به اميد شبگردي بهتر

                      Comment


                      • #12
                        خب مشکل ما اینجاست که فورمول واضحی که به وجود می آید پس از حل 400 معادله 400 مجهول هست

                        Comment


                        • #13
                          نوشته اصلی توسط arsalan1991
                          با کامپیوتر معمولی عمراَ اگر حل بشه
                          30 Min نگه داشتم cpu سوخت!!!!دود اومد بیرون ازش
                          باید بری به دانشگاه(وارد نیستم کجا)
                          ابرکامپیوتر اجاره کنی چون با کامپیتر معمولی پدر در میاره(شاید مدل کامپیوتر من خیلی خیلی پایینه) ولی به هر حال بهتره یکم از trick های ریاضی بهره ببری و استفاده کنی
                          در ضمن منم اول فکر کردم 20 تا 20 تا هست ولی برای هر درایه یک معادله پدید می آید
                          تعداد درایه ها = 20*20 =400
                          مثال:2*2 معکوسش رو اگر به دست آورده باشه 4 معادله 4 مجهول هست
                          سلام
                          آره بهتره عوضش كني چون با كامپيوتر من ماتريس معكوس يك ماتريس 30*30 بعد از اينتر بلافاصله نمايش داده مي شه
                          تازه n معادله و n مجهول خطي رو با يك ماتريس n*n براي ضرايب و يك ماتريس 1*n براي ثابت ها نمايش مي دن
                          معكوس هر ماتريس معكوس پذير n*n يك ماتريس n*n هست
                          ¯/(°_o)\¯
                          بیچاره آن کسی است که گرفتار عقل شد **** آسوده آن کسی است که خر آمد و الاغ رفت
                          این چه شوری است که در دور قمر می بینم **** همه آفاق پر از فتنه و شر می بینم
                          اسب تازی شده مجروح به زیر پالن **** طوغ زرین بر گردن خر می بینم
                          Copyright: Enigma2

                          به اميد شبگردي بهتر

                          Comment


                          • #14
                            http://en.wikipedia.org/wiki/Matrix_inversion
                            http://upload.wikimedia.org/math/a/1...0ad7f2f12a.png
                            اینم میشه گفت فرمولش
                            شما کامپیوترت ابر هست آخه کامپیوتر من سالی یه بار هم خاموش نمیشه

                            Comment


                            • #15
                              در ضمن اول شما یه چک بکن که ماتریست معکوس پذیر هست
                              اگر det =0 باشه بدبختی)
                              دترمینان هم اینجوری به دست میاد
                              det(a11,a12,a21,a22)=a11a22-a12a21
                              حالا اگر 3*3 باشه میشه یکی از راس ها در det اعدادی که زیرش نیستند
                              علامت ها هم یکی یکی از + به - عوض می شوند
                              4*4 هم به همین شکل یک det 3*3 میشه تبدیل کرد
                              و دترمینان n*n رو به د تا دترمینان (n-1)*(n-1)

                              Comment

                              Working...
                              X