zhailiangjun 发表于 2008-2-27 09:23

如何产生随机解

请教各位大虾们,小弟最近遇到这样的一个问题,例如有这样一个方程,a+b+c+d=1222。我该如何编程序随机产生产生一组a,b,c,d的解呐

sigma665 发表于 2008-2-27 10:05

随机产生4个数,满足条件就认为是解

zhailiangjun 发表于 2008-2-27 10:34

回复 2楼 的帖子

哦,是的。谢谢了

sigma665 发表于 2008-2-27 10:50

回复 3楼 的帖子

不过我觉得4个数都随机数,不容易刚好满足条件
或许有其他方法

zhailiangjun 发表于 2008-2-27 15:20

回复 4楼 的帖子

对,我今天试了,程序写不好。

VibrationMaster 发表于 2008-2-27 20:13

随机产生三个而不是四个, 第四个根据约束方程定

zhailiangjun 发表于 2008-3-1 15:46

回复 6楼 的帖子

你好,谢谢你的热心回复。下面是我写的一点小程序,对于帖子中问题还挺适合。但是我在实际中遇到的问题是不可能将约束关系a+b+c+d=1222写成d(i,1)=1222-a(i)-b(i)-c(i)
这种简单的形式,所以遇到了一些麻烦,还请大虾帮忙看一下。
a=zeros(100,1)
b=zeros(100,1)
c=zeros(100,1)
d=zeros(100,1)
e=zeros(100,4)
for i=1:1:100
a(i,1)=1000*rand(1,1)
b(i,1)=1000*rand(1,1)
c(i,1)=1000*rand(1,1)
d(i,1)=1222-a(i)-b(i)-c(i)
e(i,1)=a(i,1)
e(i,2)=b(i,1)
e(i,3)=c(i,1)
e(i,4)=d(i,1)

end

sigma665 发表于 2008-3-1 18:10

回复 7楼 的帖子

把你的约束关系贴上来

zhailiangjun 发表于 2008-3-2 16:16

回复 8楼 的帖子

谢谢你的热心回复,下面是约束方程,是一个哈密顿方程,

h=2*w*(a^2+b^2+c^2+d^2)+a*(n-2*(a^2+b^2+c^2+d^2))...
+x*((n+l)*(b^2+a^2)-(n-l)*(c^2+d^2)-2*(b^2+a^2)^2-2*(d^2+c^2)^2)...   
+a*(8*(a^2+b^2)^2+8*(c^2+d^2)^2+2*(n^2+l^2)-2*(n+l)*(a^2+b^2)-2*(n-l)*(c^2+^2))...
+4*s*(n-2*(a^2+b^2+c^2+d^2))*(b*d-a*c)...
+(r+2*g)*(((n+l)/2-b^2-a^2)*(b^2-a^2)+((n-l)/2-d^2-c^2)*(d^2-c^2))
这里边的abcd是正则坐标和动量

VibrationMaster 发表于 2008-3-3 08:03

需要的是a,b,c,d四者之间的关系,而你给出的是h作为a,b,c,d的函数。

zhailiangjun 发表于 2008-3-3 14:46

回复 10楼 的帖子

是的,但是在这里h是一个已知量,

VibrationMaster 发表于 2008-3-3 19:16

能否从你的h中显式解出a,b,c,d之一。如能则其他三量独立产生,在算出另外一个。
如果无法找到显式解,那么只能解非线性方程了。

zhailiangjun 发表于 2008-3-3 20:06

回复 12楼 的帖子

算不出来第四个,那只好解非线性方程了,我试试吧,谢谢你的热心回复。
页: [1]
查看完整版本: 如何产生随机解