کد پیاچپی:
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 نقاط تلاقی مربوط به یه نمودار رو نشون میده نه محل تلاقی یک نمودار با نمودار دیگه
لطفا کمکم کنین که بدجور گیر کردم
ممنون