回 帖 发 新 帖 刷新版面

主题:这个方程该如何解决,麻烦好心人

function y=myfun(j)
u=[  10 20 30 40 50 60 ];
x=[ 33 34 35 36 37 38 ];
y=[  101 102 103 104 105 106 ];
z=[  1000 1500 1600 880 2200 980 ];
  syms j1 j2 j3 
   for i=1:6
       r(i)=sqrt(x(i)^2+y(i)^2+z(i)^2) ;
       F(i)=cos(j(2))*(x(i)*y(i)*cos(j(1))^2+(y(i)^2-x(i)^2)*cos(j(1))*sin(j(1))-x(i)*y(i)*sin(j(1))^2)+sin(j(2))*(x(i)*z(i)*sin(j1)-y(i)*z(i)*cos(j(1)));
      P(i)=cos(j(2))^2*(y(i)^2-x(i)^2)*cos(j(1))^2-4*x(i)*y(i)*cos(j(1))*sin(j(1))-(y(i)^2-x(i)^2)*sin(j(1))^2+cos(j(1))*sin(j(2))*(2*x(i)*z(i)*cos(j(1))+2*y(i)*z(i)*sin(j(1)))+sin(j(2))^2*(y(i)^2-x(i)^2)*cos(j1)^2-2*x(i)*y(i)*cos(j(1))*sin(j(1))+(x(i)^2-z(i)^2)*sin(j(1))^2;
  end
  
  H=1/r(2)-(u(2)/u(1))*1/r(1);

   K=(u(2)/u(1))*((2/r(1)^3) *(cos(2*j(3))*F(1)+(sin(2*j(3))/2)*P(1)))-(2/r(2)^3)*(cos(2*j(3))*F(2)+(sin(2*j(3))/2)*P(2));
 
    for i=1:4
  s(i)=K*(1/r(i+2)-(u(i+2)/u(1))*1/r(1))-H*((u(i+2)/u(1))*(2/r(1)^3)*(cos(2*j(3))*F(1)+sin(2*j(3))*P(1)*1/2)-(2/r(i+2)^3)*(cos(2*j(3))*F(i+2)+(sin(2*j(3))/2)*P(i+2)));
end
  y=s(1)^2+s(2)^2+s(3)^2+s(4)^2
 
 j0 = [20;20;20];          
  [j,FVAL,EXITFLAG,OUTPUT] = fminunc(@myfun,j0)
初学者望高手帮忙,我的方程就是s(1),s(2),s(3),s(4)四个式子,我用fminunc是否合理,我的目的是得到j1,j2,j3,u,x,y,z是输入数据,这个方程是用来研究地震震源机制化解后出现的,推理过程没有错,但是这么麻烦都不知道该怎么解决

回复列表 (共2个回复)

沙发


看这么复杂的程序,我都没接触过。。

板凳


优化问题,看看可与可以用这个:

http://www.matlabforums.cn/read.php?fid=4&tid=158&fpage=1

我来回复

您尚未登录,请登录后再回复。点此登录或注册