ضرب دو ماتریس و محاسبه ی دترمینان ماتریس n*n

مقدمه

هدف اصلی از انجام پروژه های برنامه های برنامه نویسی اشنایی با انجام کار شامل درک صحیح از مساله، طراحی فلوچارت و پیاده سازی انها در یک زبان برنامه نویسی است.

هدف از انجام این پروژه نوشتن برنامه ای به زباتن فرترن است که حاصل ضرب دوماتریس A(M*N) و B(N*M) را محاسبه کند و دترمینان ماتریس حاصل ضرب را چاپ کند.

در انجام این پروژه از زبان برنامه نویسی فرترن استفاده کرده ایم. درواقع قواعد اساسی تمامی زبان های برنامه نویسی تقریبا یکسان است،به این دلیل که همگی میخواهند الگوریتم را به یک زبان قابل فهم برای رایانه تبدیل کنند.انچه موجب قدرتمندی یک زبان نسبت به زبان دیگر میشود،ظریف کاری هایی است که دریک زبان با زبان دیگرفرق میکند.علت انتخاب زبان برنامه نویسی فرترن هم بدین خاطر است که برای محاسبات عددی در رشته های علوم پایه و مهندسی بسیارمناسب بوده وقابلیت انعطاف زیادی دارد.

 

 

 

 

 

 

تئوری کار

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

بطور کلی الگوریتم ازبخش های مختلفی تشکیل میشود که برای این برنامه بصورت زیر است:

الف)تعریف دقیق مسئله:دراین برنامه میخواهیم حاصل ضرب دو ماتریسَA(M*N) وB(N*M)  را محاسبه کنیم .درحقیقت دراین برنامه قصد داریم با وارد کردن درایه های دو ماتریس A و B، ماتریس حاصلضرب C(M*M) را بدست اوریم سپس از روش بالا مثلثی دترمینان ماتریس حاصلضرب را محاسبه کند.

ب) ورودی های مساله:ابعاد و درایه ها

       ج)عملیات: با استفاده از عملیات ریاضی ربطه بین ماتریس های A  و B با ماتریس حاصل ضرب مشخص میشود.به طور کلی درایه C(I,J)  در ماتریس حاصل ضرب، ازضرب سطر i  ام ماتریس A  در ستون J ام ماتریس  B به صورت زیر بدست می آید.

C(I,j)=(A(i,1)*B(1,j) ) + (A(I,2) * B(2,J) ) + ……( A(I,n)*B(n,J) )

برای محاسبه دترمینان از روش بالا مثلثی استفاده میکنیم. در این روش با استفاده از فرمولهای ماتریسی درایه های پایین قطر اصلی را صفر می کنیم و سپس دترمینان ماتریس، حاصلضرب درایه های قطر اصلی می شود.

د)خروجی های مساله:ماتریس C(N,N) که حاصلضرب دو ماتریس Aو B است. DET  ماتریسC.

ویژگی اصلی در طراحی این برنامه استفاده از ساختار کنترلی FOR, NEXT  میباشد.

در حقیقت برای ورود درایه های دو ماتریس A  و B و همچنین محاسبه ماتریس حاصل ضرب نیازمند این بودیم تا بخشی ار ان بطور مکرر تکرار شود،لذا برای پرهیز از این تکرار از ساختار for,nextاستفاده کردیم


کد برنامه به زبان فرترن

PROGRAM GROUP

INTEGER ::I,J,M,N,S,K,G=2,T=0,SUM=0,Q

REAL::DET=1

REAL,DIMENSION(:,:),ALLOCATABLE::A

REAL,DIMENSION(:,:),ALLOCATABLE::B

REAL,DIMENSION(:,:),ALLOCATABLE::C

"PRINT*,"ENTER M,N

READ*,M,N 

((ALLOCATE(A(N,M

((ALLOCATE(B(M,N

((ALLOCATE(C(N,N

"("PRINT*,"Enter A("N","M

READ*,A

"("PRINT*,"Enter B("M","N

READ*,B

DO I=1,N

 DO J=1,N

C(I,J)=0

  DO S=1,M

(C(I,J)=C(I,J)+A(I,S)*B(S,J

  END DO

  (PRINT*,"C("I","J")=",C(I,J

 END DO

END DO

DO K=1,N

  DO Q=1,N

  SUM=ABS(C(K,Q))+SUM

  END DO

  IF (SUM/=0) THEN

    DO WHILE (C(K,K)==0)

                T=T+1

        DO I=1,N

                (C(I,K)=C(I,K)+C(I,K+T

                END DO

            END DO

   DO I=G,N

   (P=-C(I,K)/C(K,K

     DO J=1,N

     (C(I,J)=P*C(K,J)+C(I,J

     END DO

   END DO

   G=G+1

  ELSE

  DET=0

  EXIT

  END IF

 END DO

DO I=1,N

DET=C(I,I)*DET

END DO

PRINT*,"DET=",DET

STOP

END PROGRAM GROUP


ما سر نوشتن این برنامه پیر شدیما .... اصن یه وضی بود :D


مطالب مشابه :


معکوس ماتریس 3 * 3 و بالاتر ( n * n )

معکوس ماتریس 3 * 3 و فرمول زیر برای محاسبه دترمینان به ( 1 تقسیم بر دترمینان ماتریس)




روشهای محاسبه دترمینان

دانش آموزان ریاضی و علاقه مندان ریاضیات تعریف اولیه دترمینان یک ماتریس مربعی از مرتبه n رو




بدست آوردن معکوس ماتریس

برای پیدا کردن معکوس ماتریس 3 در 3 ، ابتدا دترمینان آن را حساب می محاسبه دترمینان ماتریس 3




محاسبه دترمینان یک ماتریس

منزلگه ققنوس - محاسبه دترمینان یک ماتریس - دترمینان ماتریس مربعی - که به صورت | A | یا ( det( A




ضرب دو ماتریس و محاسبه ی دترمینان ماتریس n*n

کارشناسی عمران - ضرب دو ماتریس و محاسبه ی دترمینان ماتریس n*n - - کارشناسی عمران




راهنمایی درمورد برنامه محاسبه دترمینان ماتریس (به درخواست محمد رضا)

یا که دترمینان ماتریس مربعی مرتبه n رو به دترمینان n تا ماتریس از مرتبه n-1 تبدیل می کنه و




مبحث ماتریس

رای پیدا کردن معکوس ماتریس 3 در 3 ، ابتدا دترمینان آن را حساب می محاسبه دترمینان ماتریس 3 در 3.




نمونه برنامه های حل شده برنامه نویسی ++c برای درس محاسبات عددی

ای بنویسید که یک ماتریس 3 عبارت ریاضی که محاسبه دترمینان ماتریس داده شده




برنامه محاسبه معکوس ماتریس n * n ( زبان C# )

یک ماتریس 3 در 3 یا محاسبه معکوس ماتریس به که معکوس دترمینان ماتریس ورودی




بدست آوردن وارون یا معکوس یک ماتریس

یک تقسیم بر دترمینان ماتریس معکوس ماتریس 3*3 معکوس ماتریس رو محاسبه




برچسب :