کلیدستان

نسخه‌ی کامل: سوال در مورد کد
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
کد پی‌اچ‌پی:
clc%calculate switching probability
clear all
;
close all;
Nr=100;%intial value
sigma
=Nr;
mu=0;
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);
         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,k,15)
h=colorbar
set
(h,'YTick',3:.5:10)
xlabel('alfa');
ylabel('landa');
title('Kurtosis')


clc%calculate switching probability
clear all
;
close all;
Nr=100;%intial value
sigma
=Nr;
mu=0;
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:7
    
for landa=1:7
        
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:7
        
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:7
    
for landa=1:7
         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;
         syms x
         w
=normpdf(x,0,1)
         r=int(w,-alfa,Inf)
         Popp(alfa,landa)=(Tinact(alfa,landa)*(1-inact(alfa,landa))*1/2)+(Tinact(alfa,landa)*inact(alfa,landa)*r)+(Tact(alfa,landa)*act(alfa,landa)*1/2)+(Tact(alfa,landa)*(1-act(alfa,landa))*r);
         
    end
end
[x,y]=meshgrid(1:7)
[
C,h]=contourf(x,y,Popp,8)
clabel(C,h,'FontSize',6,'Rotation',0)
colorbar
xlabel
('alfa');
ylabel('landa');
title('Popp'
با سلام
دو تا کد محتلف (هرکدوم توی یه ام فایل )  دارم که ب تنهایی اجرا میکنه. این کدا نشون میده که به ازای الفا و لاندای مختلف یه انتگرالی حساب میشه و بعد از محاسبه فرمولا به ازای الفا و لاندا مختلف (از 1تا7 مثلا) نمودار K و نمودار Popp رسم میشه.( فرمول هرکدوم از اونا جداگانه حساب شده و در کدها معلومه)
سوالی که من دارم اینه:
بر اساس داده های تجربی من مقدار دقیق K  و Popp  رو میدونم. و روی نمودار هم میتوونم منحنی مربوط به اون عدد رو پیدا کنم (توجه کنین منحنی نه نقطه.) حالا می خوام فقط منحنی مخصوص به اون رو جدا گانه رسم کنم ینی مثلا مقدار K  در واقعیت 9 و مقدار Popp ، 0.35 است. منحنی هر کردوم از این ها رو در نمودارش پیدا می کنم. باید این دو منحنی رو در نمودار جداگانه ای با هم تلاقی بدم. (در حالیکه این کدها مجموعه ای از منحنی ها رو داره برای هرکدوم میده)
وقتی مقدار دقیق این عبارات رو میدم برام فقط یه نقطه رسم می کنه. وقتی می خوام به ازای االفا و لانداها ی مختلف برام منحنی رو رسم کنه چون داره تمام  فرمولا رو حساب میکنه بازم کل نمودارو می کشه (ینی تمام مجموعه منحنی ها رو میده) اونوقت نتیجه اش میشه رسم دو تا نمودار روی هم که کلی منحنی با مقادیر مختلف داره.
حتی من همین مورد اخر رو هم امتحان کردم (ینی رسم دو نمودار با تمام مجموعه منحنی هاشون روی هم دیگه با استفاده از کد زیر)
~[x,y]=meshgrid(1:7)
[C,h]=contour(x,y,Popp,8)
clabel(C,h,'FontSize',6,'Rotation',0)
hold on
[C,h]=contour(x,y,k,8)
clabel(C,h,'FontSize',6,'Rotation',0)
colorbar
xlabel('alfa');
ylabel('landa');
title('Popp and K')
خواستم با استفاده از
cursorنقاط تلاقی رو پیدا کنم اما cursor نقاط تلاقی مربوط به یه  نمودار رو نشون میده نه محل تلاقی یک نمودار با نمودار دیگه
لطفا کمکم کنین که بدجور گیر کردم
ممنون
 

 
کسی واقعا نمیدونه من باید اینو چیکار کنم؟
یه فایل به تاپیک اصلی ضمیمه کردم.