PDA

View Full Version : جدا کردن قسمت زوج و فرد جند جمله ای



ehsan_faal
دوشنبه 13 مرداد 1393, 23:08 عصر
سلام.آیا مطلب دستور آماده ای داره که یه بردار بهش بدم و قسمت های زوج و فرد اون چندجمله ای رو بهم بده؟اگه نه،ممنون میشم یه راهی پیشنهاد کنید.
با تشکر

rahnema1
سه شنبه 14 مرداد 1393, 07:36 صبح
سلام.آیا مطلب دستور آماده ای داره که یه بردار بهش بدم و قسمت های زوج و فرد اون چندجمله ای رو بهم بده؟اگه نه،ممنون میشم یه راهی پیشنهاد کنید.
با تشکر

سلام
با یه بردار خالی که نمیشه مثلا شما( f(x را بخواهید تجزیه کنید باید x را هم داشته باشید
این لینک آموزش:
http://www.mathamazement.com/Lessons/Calculus/00_Real-Valued-Functions/odd-and-even-functions.html

این هم کد:
http://www.mathworks.com/matlabcentral/fileexchange/2189-digital-signal-processing-using-matlab/content/proakis/PWS_DSP/evenodd.m

ehsan_faal
سه شنبه 14 مرداد 1393, 13:01 عصر
سلام
با یه بردار خالی که نمیشه مثلا شما( f(x را بخواهید تجزیه کنید باید x را هم داشته باشید
این لینک آموزش:
http://www.mathamazement.com/Lessons/Calculus/00_Real-Valued-Functions/odd-and-even-functions.html

این هم کد:
http://www.mathworks.com/matlabcentral/fileexchange/2189-digital-signal-processing-using-matlab/content/proakis/PWS_DSP/evenodd.m

منظورم اینه که من داشته باشم:[1 0 2 3 0 4]
خب اینا ضرایب چند جمله ای هستن دیگه.دستوری واسه جدا کردن قسمت زوج وفرد این چند جمله ای هست یا باید واسش تابع بنویسم؟
با تشکر

rahnema1
سه شنبه 14 مرداد 1393, 13:48 عصر
منظورم اینه که من داشته باشم:[1 0 2 3 0 4]
خب اینا ضرایب چند جمله ای هستن دیگه.دستوری واسه جدا کردن قسمت زوج وفرد این چند جمله ای هست یا باید واسش تابع بنویسم؟
با تشکر

تو همون آموزش بود
دو تا تابع می تونیم بنویسیم و مثلا می خواهیم در نقطه x=1 مقدار تابعها به دست بیاد

function ret=feven(P,X)
ret=(polyval(P,X)+polyval(P,-X))/2;
end

function ret=fodd(P,X)
ret=(polyval(P,X)-polyval(P,-X))/2;
end

z=[1 0 2 3 0 4] ;
feven(z,1)
fodd(z,1)

ehsan_faal
سه شنبه 14 مرداد 1393, 19:49 عصر
با تشکر از شما آقای rahnema1منم اینا رو نوشتم.امیدورام برای بقیه هم کاربرد داشته باشه:

function answer=Odd_Section(X)answer=zeros(1,numel(X));
if mod(numel(X),2)==0
for i=1:numel(X)
if mod(i,2)==0
continue;
else
answer(i)=X(i);
end
end
else
for i=1:numel(X)
if mod(i,2)==0
answer(i)=X(i);
else
continue;
end
end
end
end

function answer=Even_Section(X)answer=zeros(1,numel(X));
if mod(numel(X),2)==0
for i=1:numel(X)
if mod(i,2)==0
answer(i)=X(i);
else
continue;
end
end
else
for i=1:numel(X)
if mod(i,2)==0
continue;
else
answer(i)=X(i);
end
end
end
end

rahnema1
سه شنبه 14 مرداد 1393, 20:20 عصر
نمیدونستم اینجوری می خواهید وگرنه

function answer= Even_Section(X)
answer=X;
answer(1:2:numel(X))=0;
end
function answer= Odd_Section(X)
answer=X;
answer(2:2:numel(X))=0;
end