انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
انتگرال tpdf با درجه ازادی 5 (در متلب)

انتگرال tpdf با درجه ازادی 5 (در متلب)

#1
با سلام
کد زیر رو که با توزیع نرمال نوشتم اجرا میشه اما وقتی که توزیع رو یه تی تغییر میدم (ینی D رو از یه رشته اعداد تصادفیه تی انتخاب می کنم و می خوام انتگرال tpdf با درجه ازادی 5 اجرا بشه) ارور میده . نمی دونم چطوری اصلاحش کنم.
helpمنلب در مورد مثال انتگرالا هم خووندم اما باز متوجه نمیشم منظور این ارور چیه
کد زیر درست اجرا میشه اما کد بعدی نه

کد پی‌اچ‌پی:
D=normrnd(mu,sigma,1);%generate random numbers in normal distribution
b
=0;
c=0;
q=0;
g=0;
z=0;
s=0;
for 
alfa=1:8
    
for landa=1:8
        
if D<-landa%dar vaziyat foroosh
            syms x
            f
=normpdf(x,0,1)
            b=int(f,-Inf,-landa)
       
            
elseif D>landa%dar vaziyat kharid
             syms x
             j
=normpdf(x,0,1)
             c=int(j,landa,Inf)
       
        end
        inact
(alfa,landa)=b+c
    end
    
for landa=1:8
        
if -landa<D<0
            syms x
            o
=normpdf(x,0,1)
            z=1/2*int(o,-landa-alfa,landa-alfa)
        elseif 0<D<landa
            syms x
            u
=normpdf(x,0,1)
            s=1/2*int(u,-landa+alfa,landa+alfa)
        end
        act
(alfa,landa)=z+s
    end
end
for alfa=1:8
    
for landa=1:8
         h
(alfa,landa)=act(alfa,landa)+inact(alfa,landa);
         Tact(alfa,landa)=inact(alfa,landa)/h(alfa,landa);
             end
end
[x,y]=meshgrid(1:8)
contourf(x,y,Tact,15)
colorbar 


کد پی‌اچ‌پی:
clc%calculate switching probability+Tact with T-distribution
clear all
;
close all;
Nr=100;%intial value
sigma
=Nr;
mu=0;
D=trnd(5,1,1);%generate random numbers in normal distribution
b
=0;
c=0;
q=0;
g=0;
z=0;
s=0;
for 
alfa=1:8
    
for landa=1:8
        
if D<-landa%dar vaziyat foroosh
            syms x
            f
=tpdf(x,5)
            b=int(f,-Inf,-landa)
       
            
elseif D>landa%dar vaziyat kharid
             syms x
             j
=tpdf(x,5)
             c=int(j,landa,Inf)
       
        end
        inact
(alfa,landa)=b+c
    end
    
for landa=1:8
        
if -landa<D<0
            syms x
            o
=tpdf(x,5)
            z=1/2*int(o,-landa-alfa,landa-alfa)
        elseif 0<D<landa
            syms x
            u
=tpdf(x,5)
            s=1/2*int(u,-landa+alfa,landa+alfa)
        end
        act
(alfa,landa)=z+s
    end
end
for alfa=1:8
    
for landa=1:8
         h
(alfa,landa)=act(alfa,landa)+inact(alfa,landa);
         Tact(alfa,landa)=inact(alfa,landa)/h(alfa,landa);
         Tinact(alfa,landa)=act(alfa,landa)/h(alfa,landa);
         k(alfa,landa)=((alfa^4+6*alfa^2+3)*Tact(alfa,landa)+3*Tinact(alfa,landa))/((alfa^2+1)*Tact(alfa,landa)+Tinact(alfa,landa))^2;
    end
end
[x,y]=meshgrid(1:8)
contourf(x,y,Tact,15)
colorbar
xlabel
('alfa');
ylabel('landa');
title('Tact'

اروری که کد بالا میده اینه:

کد پی‌اچ‌پی:
The following error occurred converting from sym to double:
Error using mupadmex
Error in MuPAD command
DOUBLE cannot convert the input expression
into a double 
array.If the input expression contains a symbolic variable, use the VPA
function instead.Error in tpdf (line 40)
    y(k) = term ./ (sqrt(v(k)*pi) .* (+ (x(k) .^ 2) ./ v(k)) .^
    ((v(k) + 1)/2));Error in MTact (line 36)
            u=tpdf(x,5

میشه کمکم کنین
پاسخ


پیام‌های این موضوع
انتگرال tpdf با درجه ازادی 5 (در متلب) - توسط ramoona - ۱۳۹۳/۰۹/۲۳, ۰۳:۵۰ ب.ظ
RE: ایراد کد نویسی - توسط ramoona - ۱۳۹۳/۰۹/۲۵, ۱۰:۵۴ ق.ظ
RE: ایراد کد نویسی - توسط admin - ۱۳۹۳/۰۹/۲۵, ۰۱:۳۶ ب.ظ
RE: ایراد کد نویسی - توسط ramoona - ۱۳۹۳/۰۹/۲۵, ۰۱:۳۹ ب.ظ
RE: انتگرال tpdf با درجه ازادی 5 (در متلب) - توسط admin - ۱۳۹۳/۰۹/۲۵, ۰۶:۵۸ ب.ظ
RE: انتگرال tpdf با درجه ازادی 5 (در متلب) - توسط ramoona - ۱۳۹۳/۰۹/۳۰, ۱۲:۰۲ ب.ظ
RE: انتگرال tpdf با درجه ازادی 5 (در متلب) - توسط admin - ۱۳۹۳/۱۰/۰۱, ۱۱:۱۶ ب.ظ
RE: انتگرال tpdf با درجه ازادی 5 (در متلب) - توسط ramoona - ۱۳۹۳/۱۰/۰۳, ۰۵:۰۹ ب.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان