PDA

View Full Version : مشکل در محاسبه یک رابطه بازگشتی در متلب



vida1978m
جمعه 03 مهر 1394, 18:37 عصر
سلام

به کد متلب برای محاسبه رابطه بازگشتی زیر نیاز دارم ، لطفا راهنمایی فرمایید
k و n دو عدد می باشند
رابطه زیر ، برای k بزرگتر مساوی n و n بزرگتر مساوی یک ، بصورت ذیل می باشد:

Sigma {(X(k-j,n-1)*(q^j)}= X(k,n)
که j در زیگما از 1 تا k تغییر می کند
q یک تابع می باشد

-برای k و n که برابر صفر باشند ، مقدار x(k,n) برابر یک است

-برای n برابر صفر و k بزرگتر از صفر ، x(k,n) برابر است با p^k
p یک تابع می باشد

-برای k کوچکتر از n ، x برابر صفر است

با تشکر

rahnema1
جمعه 03 مهر 1394, 19:00 عصر
سلام
چه فونت درشتی چشممون اونقدرها هم ضعیف نیست
جواب سوال به صورت خیلی سر راست در زیر گذاشتم با توجه به اینکه p و q دو تابع هستند توی پرانتز جلوی اونها می تونید پارامتر مورد نظر بذارید

function result = X(k, n)
if k == 0 & n == 0
result = 1;
return;
end
if n == 0 & k > 0
result = p() ^ k;
return;
end
if k < n
result = 0;
return;
end
result = 0;
for j = 1:k
result = result + X(k - j, n - 1) * q() ^ j;
end
end

vida1978m
شنبه 04 مهر 1394, 11:11 صبح
با سلام وتشکر
بابت فونت عذرخواهی می کنم

برای بیان صورت سوال یک مثال می زنم
فرض می کنم k=4 و n=2 باشد:

x(4,2)=x(3,1).*(q^1)+x(2,1).*(q.^2)+x(1,1).*(q.^3) +x(0,1).*(q.^4

که با توجه به شرط های ذکر شده وقتی k<n است مقدار x برابر صفر می شود یعنی صفر=(x(0,1


پس برای محاسبه (x(4,2نیاز به محاسبه (x(3,1 و (x(2,1و (x(1,1می باشد

یعنی می بایست ابتدا فرمول (x(4,2 بصورت کلی بدست آید و سپس مقادیر x های سازنده آن با توجه به شرط های گفته شده بر حسب k و n بررسی شود تا بتوان مقداری برای آن ها بدست آورد یعنی

حال لازم است مقادیر x های سازنده (x(4,2 بصورت زیر باز و محاسبه شوند بصورت ذیل

x(3,1)=x(2,0).*(q^1)+x(1,0).*(q.^2)+x(0,0).*(q.^3

که در حالتی که k وn هر دو برابر صفر باشند طبق شروط داده شده مقدار x برابر یک است
پس 1= (x(0,0
همچنین مقدار (x(2,0 از شروط داده شده برابر p()^2 می باشد.
و همچنین مقدار (x(1,0 از شروط داده شده برابر p()^1 می باشد.

حال باید (x(2,1 را محاسبه نمود
x(2,1)=x(1,0).*(q^1)+x(0,0).*(q.^2
همچنین مقدار (x(1,0 از شروط داده شده برابر p()^1 می باشد.

بنابراین برنامه بایستی دارای این قابلیت باشد که برای هر k و n بتواند فرمول کلی برای x متناظر آن ها را ابتدا در نظر بگیرد و برای x های سازنده آن نیز مدام شروط k و n را بررسی نماید و آنها را نیز بازتر نماید تا هر کدام نهایتا به عددی براساس این شروط برسند.

با تشکر
و عذر خواهی که طولانی شد.

.

rahnema1
شنبه 04 مهر 1394, 21:39 عصر
خب همین نکاتی که اشاره کردید در اون کدی که گذاشتم رعایت شده

vida1978m
یک شنبه 05 مهر 1394, 15:37 عصر
از راهنمایی تان ممنون