PDA

View Full Version : وارون ماتریس



mina rostami
جمعه 06 آذر 1388, 09:54 صبح
شما هم همین کاری را کردید که من نوشته بودم وماتریس به بالا مثلثی تبدیل می شود اما من در بقیه ی برنامه مشکل دارم اگر ممکنه راهنمایی ام کنید:گریه:

qwerty11
جمعه 06 آذر 1388, 15:22 عصر
سلام من دانشجوی ترم اول هستم اگر ممکنه کسی من را در نوشتن وارون ماتریس n*nراهنمایی بکنه لطفا فقط به زبان پاسکال:گریه::گریه:
fork:iton-1
fori:k+1 to n
forj:1 to n
A[I,J]=A[i.j]*(a[kk]/a[ik])-a[kj
fori:1 to n
d=1
d=d*A[ij
این دترمیناله
برای به دست اوردن کهاد هم از همین روش استفاده می کنیم با شرط این که
whil i<>c or j<>k
کهk,cسطروستونهایی که باید حذف بشه
اگر کسی می دونه اشکال برنامه ی من کجاست

اون دوتا اندیس اولیه چرا اینجوریه ؟؟؟ کلا هم معلوم نبود چی نوشتی !!
بیا از این استفاده کن، مطمئنم درسته !! فقط اگه A[i,i] صفر بشه ...



for i:1 to n
for j:i+1 to n
for k:i to n
A[j,k] := A[j,k]-A[i,k]*(A[j,i]/A[i,i]);

d := 1;
for i:1 to n
d := d*A[i,i];

mina rostami
شنبه 07 آذر 1388, 15:28 عصر
سلام.من هم با کمی تفاوت همین طور نوشتم که امیدوارم با تفاوت هایی که شما روی برنامه اجرا کردید مشکل حل بشود به هر حال خیلی ممنون وامیدوارم اگر مشکلی پیش امد بتوانم باز هم از اطلاعات مفید شما استفاده بکنم .خیلی ممنون از وقت گذاری شما

qwerty11
شنبه 07 آذر 1388, 16:17 عصر
بازم سلام !!
شما که گفتی ببینید کجای برنامه ی من ایراد داره !!!
اما به هر حال حالا که دترمینان به دست اومد، فقط به دست آوردن A* مهمه !!
به ازای هر درایه کافیه که سطر و ستونی که اون درایه داره رو حذفش کنی و بفرستیش به تابعی که دترمینان رو حساب میکنه. فقط باید حواست باشه که ماتریس جدیده یه ماتریس n-1 در n-1 هستش نه n*n .

فکر کنم با کد بتونی به جواب برسونیش !!



var x,y : Integer
B,C:array[1..100,1..100] of real
for i:1 to n
for j:1 to n
begin
x=1;
y=1;
for k:1 to n
begin
for w:1 to n
if (k<>i) and (w<>j) then
B[x,y] := A[i,j];
y := y+1;
end;
if(k<>i) x := x+1;
end;

C[i,j] := determinan(B,n-1)/det;
end;


آخرین باری که پاسکال دیدم سال 3سوم دبیرستان بود !! یعنی 4 سال پیش ! با بدبختی و نتگردی تونستم یکم به پاسکال تبدیلش کنم ! اگه از نظر سینتکسی اشکال داشت دیگه خودت درستش کن.

تو این کد آرایه ی B یه آرایه ی کمکی هستش، C هم همون ماتریس وارون ما هستش. det هم همون دترمینان ماتریس اصلی ما هستش.

امیدوارم مشکلت حل بشه ...