matlab仿真程序求助 谢谢

matlab仿真程序求助 谢谢,第1张

i=size(Y(:,1))

t = 0.001:0.001:0.001*i

x = sin(2*pi*50*t)+sin(2*pi*120*t)

s=x.*(1*Y(:,1))'袜饥此告迅肢租

plot(x)

% 本程序为基于matlab的动画绘制实例

% 通过设置句柄来达到理想d簧振子简谐运动示例

% 其核心思想是句柄、数据设置、演示延迟等% 理想d簧振子简谐运动

clcclear allclose all% 清理族颂蚂matlab空间

figurehold onbox on% 打开figure窗口

% 绘制矩形框,作为顶板

rectangle('position', [12, 8.5, 2, 0.3], 'FaceColor', [0.5,0.3,0.4])

% 设置坐标轴

axis([0, 15, -1, 10])

% 绘制直线

plot([13,13], [7,8.5], 'r', 'linewidth', 2)

% 画d簧

y = 2:.2:7

M = length(y)% y的长度

x = 12+mod(1:M,2)*2

x(1) = 13

x(end-3:end) = 13% 直线数据

D = plot(x,y)

% 画小球

C = 0:.1:2*pi

r = 0.35

t1 = r*sin(C)

F1 = fill(13+r*cos(C),2+t1,'r')

% 设置坐标轴属性

set(gca, 'ytick', [0:2:9])

set(gca, 'yticklabels', num2str([-1:3]'))

% 绘制中间横线

plot([0,15], [3.3,3.3], 'black')

% 绘制中间横线,此时为绿色线

H1 = plot([0,13], [3.3,3.3], 'g')

% 运动曲线

Q = plot(0,3.8,'color','r')

td = []

yd = []

T = 0

% 字符标签

text(2, 9, '理想中的d簧振子简谐振动', 'fontsize', 16)

set(gcf, 'doublebuffer', 'on')

while T <12

% 设置时间延迟

pause(0.2)

Dy = (3/2-1/2*sin(pi*T))*1/2

Y = -(y-2)*Dy+7

Yf = Y(end)+t1

td = [td,T]% 保存数据兆埋

yd = [yd,Y(end)]% 保存数据

set(D, 'ydata', Y)% 设置数据

set(F1, 'ydata', Yf, 'facecolor', rand(1,3))% 设置小球

set(H1, 'xdata', [T,13], 'ydata', [Y(end),Y(end)])% 设置横轴

set(Q, 'xdata', td, '樱笑ydata', yd)% 绘制运动曲线

T = T+0.1

end

可以采用Box_Muller的方法。

Box-Muller方法是以两组独立的随机数U和V,这两组数在(0,1]上均匀分布,用U和V生成两组独立的标准常态分布随机变量X和Y

x=sqrt((-2)*ln(U))*cos(2*pi*V)

Y=sqrt((-2)*ln(U))*sin(2*pi*V)

matlab 程序

function Norm_Distribution_Box_Muller

clear allclc%清屏 

m=input('请输入平均值:')

n=input('请输入标准差:') 

t=input('请输入数据长度:') %产生正态分布的随机数 

for i=1:t    

    a=rand  行迟   

    b=rand     

    X1(i)=sqrt((-2)*log(a))*cos(2*pi*b)    

    X2(i)=sqrt((-2)*log(a))*sin(2*pi*b)   

    Y1=X1*n+m    

    Y2=X2*n+m 

end

disp(Y1) %求平均值和标准差

M1=mean(Y1) N1=std(Y1) disp(M1) disp(N1) disp(Y1) %求平均值和标准差 

M2=mean(Y2) N2=std(Y2) disp(M2) disp(N2)  %将数据写入文本文件  

fid=fopen('xiefei1.dat','w') Z1=Y1  fprintf(fid,'%f\t',Z1)

fclose(fid) %将数据写入文本文件 

fid=fopen('xiefei2.dat','w') Z2=Y2 

fprintf(fid,'%f\t',Z2) fclose(fid) 

%绘图 

subplot(2,1,1) histfit(Y1)

xlabel('随机数码带稿') ylabel('出现的次数') 

%绘图

subplot(2,1,2)histfit(Y2)

xlabel('随机数')ylabel('出现的次数')

%检验 

h1=lillietest(Y1)%若结果h1为1,则说明零假设不成立,拒绝零假设;否迟孝则,结果为0,零假设成立,即原分布为正态分布

disp(h1)

h2=lillietest(Y2)%若结果h2为1,则说明零假设不成立,拒绝零假设;否则,结果为0,零假设成立,即原分布为正态分布 

disp(h2)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存