如何产生随机解
请教各位大虾们,小弟最近遇到这样的一个问题,例如有这样一个方程,a+b+c+d=1222。我该如何编程序随机产生产生一组a,b,c,d的解呐 随机产生4个数,满足条件就认为是解回复 2楼 的帖子
哦,是的。谢谢了回复 3楼 的帖子
不过我觉得4个数都随机数,不容易刚好满足条件或许有其他方法
回复 4楼 的帖子
对,我今天试了,程序写不好。 随机产生三个而不是四个, 第四个根据约束方程定回复 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
回复 7楼 的帖子
把你的约束关系贴上来回复 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是正则坐标和动量 需要的是a,b,c,d四者之间的关系,而你给出的是h作为a,b,c,d的函数。
回复 10楼 的帖子
是的,但是在这里h是一个已知量, 能否从你的h中显式解出a,b,c,d之一。如能则其他三量独立产生,在算出另外一个。如果无法找到显式解,那么只能解非线性方程了。
回复 12楼 的帖子
算不出来第四个,那只好解非线性方程了,我试试吧,谢谢你的热心回复。
页:
[1]