matlab的一小段代码,为什么不出来正确图形?求大神额

matlab的一小段代码,为什么不出来正确图形?求大神额,第1张

clear,clc,clf

hold on

R=1

for N_max=1:1:3

L3=[]

for SNR=0:1:20

SNR_ad=SNR

SNR_bd=SNR

SNR_rd=SNR

m=exp(-(2^R-1)/(10^(SNR_ad/10)))

n=exp(-(2^R-1)/(10^(SNR_bd/10)))

p=exp(-(2^R-1)/(10^(SNR_rd/10)))

U=(1-m)*(1-p)*p

V=(1-n)*(1-p)*p

P_A=(1-(1-m)*(1-p))

P_B=(1-(1-n)*(1-p))

for K=1:1:N_max

P_A=P_A+U*(1-p)^(K-1)

P_B=P_B+V*(1-p)^(K-1)

end

P_out2=1-P_A*P_B

L3=[L3 P_out2]%Nmax次重传的中断概率

end

switch N_max

case 1

plot(0:1:20,L3,'--xr')

case 2

plot(0:1:20,L3,'--*g'段吵)

case 3

plot(0:1:20,L3,'--vb')

end%此循环程序实现不银氏同Nmax值对应的中断概率仿锋燃散真图

end

hold off

%给圆心(a,b)返回安全系数K

function output=damnk(a,b)

cita=50

h=50

c=20

gama=18

fi=35

n=10

r=(a^2+b^2)^(1/2)

n1=(a+(r^2-(h-b)^2)^(1/2))/n

i=1

Tn=0

Rn=0

while(i<=n)

Ri=quad(@(x)(x*tand(cita)+0-b+(r^2-(x-a).^2).^(1/2)).*(r^2-(x-a).^2).^(1/2)/r,(i-1)*n1,i*n1)

Ti=quad(@(x) x*tand(cita)+0-b+(r^2-(x-a).^2).^(1/2),(i-1)*n1,i*n1)

Rn=Rn+Ri

Tn=Tn+Ti

i=i+1

end

jiajiao=acosd(dot([0-a,0-b],[(a+(r^2-(h-b)^2)^(1/2))-a,h-b])/(norm([0-a,0-b])*norm([0-a,h-b])))

l=2*pi*r*(jiajiao/360)

z=(Rn*tand(fi)+c*l/gama)/Tn

output=z

但是你的(r^2-(h-b)^2)^(1/2)这项态源巨容易成为虚数,注意参数a,b的选择

其次,你要算出个数,怎么能用符号计算呢。。。 一般直接数值积分~有些可以备闭桐仿坦先符号再赋值计算,这里貌似不是很好~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12310126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存