#include <stdioh>
// double u μ 正态分布的均值
// double g σ2=g2 正态分布的方差
// double r 指向随机数种子
// double grn1() 返回一个均值u 方差g2 正态分布 的随机数
double grn1(double u,double g,double r)
{ int i,m;
double s,w,v,t;
s=655360; w=20530; v=138490;
t=00;
for (i=1; i<=12; i++)
{ r=(r)w+v; m=(int)(r/s);
r=r-ms; t=t+(r)/s;
}
t=u+g(t-60);
return(t);
}
int main()
{
double u,g,r;
r=50;u=10;g=15;
printf("\n");
for(int i=0;i<=9;i++){
for(int j=0;j<=4;j++){
printf("%107lf ", grn1(u,g,&r));
}
printf("\n");
}
printf("\n");
}
运行结果:
12386322 -11779938 05128021 19047699 15916595
11672211 -07747955 18593597 16634369 17311859
06563568 -14673004 -00460358 -09860992 03062592
39247894 -05367584 35153656 -03250885 00356293
01912689 02355804 02623138 03652191 36380463
11745453 20684662 04135590 23035736 48322601
-09066315 01806488 21878510 22087250 18370209
-03335114 32908783 08039398 12994232 -11289215
41126556 06179047 04805756 07944183 -13468170
16506195 23804779 24365082 19124603 09020844
参考 常用算法程序集(c语言描述)第三版
第三章 随机数的产生
35 产生任意均值与方差的正态分布的一个随机数
你自己看matlab对svd的说明,
X= USV'
这里的V是转置的
所以跟你的C程序结果是转置
其次正负号可以随便分配的,例如你把U的符号全取负号,那么V也是全取负号
然后就是精度问题,你在matlab 先输入format long
就能看到更多位数了,大小基本是一样的
所以其实结果是等价的,说白了就是S按特征值大小排序的话是唯一的,U,V不唯一
不明白可追问
晕,这种问题百度怎么可能有详细的答案?百度的回答能够变成一篇几十页的论文么?
要下好论文关键还是要会抄书!
你去学校的图书馆借这几本书,综合的抄!有程序有理论有分析有图表!
绝对是一篇漂亮的论文!一天就可以搞掂!
《计算机算法设计与分析》第二版 王晓东 清华大学出版社 2003
《数据结构与算法分析》 张铭、刘晓丹译 电子工业出版社
《计算机常用算法》第二版 徐士良主编 清华大学出版社
《计算机指导引论-设计与分析》卢开澄主编 清华大学出版社
! aa为原矩阵,b为存放aa的逆矩阵,n为矩阵aa的维数
subroutine nizhen(aa,b,n)
integer n,i,j,k
real:: aa(n,n),b(n,n),a(n,n)
a=aa
do i=1,n
b(i,i)=1
enddo
do i=1,n
b(i,:)=b(i,:)/a(i,i)
a(i,i:n)=a(i,i:n)/a(i,i)
do j=i+1,n
do k=1,n
b(j,k)=b(j,k)-b(i,k)a(j,i)
enddo
a(j,i:n)=a(j,i:n)-a(i,i:n)a(j,i)
enddo
enddo
do i=n,1,-1
do j=i-1,1,-1
do k=1,n
b(j,k)=b(j,k)-b(i,k)a(j,i)
enddo
enddo
enddo
end
以上就是关于请教编程高手,如何产生从-5到5的一组正态分布的随机数全部的内容,包括:请教编程高手,如何产生从-5到5的一组正态分布的随机数、关于求矩阵SVD的问题、急!急!!急!!!几种算法复杂度分析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)