在Matlab中有2个变量的4个等式

时间:2014-05-12 16:18:39

标签: matlab

我有两个变量的4个方程,想在Matlab中解决它,任何人都可以帮助我。我想要找出的等式的两个变量是\theta\phi

$\cos2\theta+sin2\theta+1=1$

$cos^2\phi cos^2\theta+cos^2\phi cos2\theta sin2\theta+cos^2\phi cos2\theta+sin2\phi cos2\phi cos2\theta sin2\theta+sin2\phi cos2\phi sin^2\theta+sin2\phi cos2\phi sin2\theta+0.4837=0$

$cos2\phi cos^2\theta sin2\phi + cos2\theta sin^2\phi sin2\theta +cos2\phi cos2\theta sin2\phi sin2\theta+cos2\phi cos2\theta sin2\phi +sin^2\phi sin2\theta=1$

$cos^2\theta sin2\phi -cos2\phi sin^2\theta-cos2\phi sin2\theta +cos2\theta sin2\phi - cos2\phi cos2\theta sin2\theta +cos2\theta sin2\phi sin2\theta=0 $

2 个答案:

答案 0 :(得分:1)

假设我已正确翻译您的功能,问题似乎没有解决方案。尝试使用此任何起始值:

function myFcn    

    X = fsolve(@F, 2*pi*rand(2,1))

end

function val = F(X)

    th = X(1);
    ph = X(2);

    val =  [
        cos(2*th) + sin(2*th)
        cos(ph).^2.*cos(th).^2 + cos(ph).^2.*cos(2*th).*sin(2*th) + cos(ph).^2.*cos(2*th) + sin(2*ph).*cos(2*ph).*cos(2*th).*sin(2*th) + sin(2*ph).*cos(2*ph).*sin(th).^2 + sin(2*ph).*cos(2*ph).*sin(2*th) + 0.4837
        cos(2*ph).*cos(th).^2.*sin(2*ph) + cos(2*th).*sin(ph).^2.*sin(2*th) + cos(2*ph).*cos(2*th).*sin(2*ph).*sin(2*th) + cos(2*ph).*cos(2*th).*sin(2*ph) + sin(ph).^2.*sin(2*th) - 1
        cos(th).^2.*sin(2*ph) - cos(2*ph).*sin(th).^2 - cos(2*ph).*sin(2*th) + cos(2*th).*sin(2*ph) - cos(2*ph).*cos(2*th).*sin(2*th) + cos(2*th).*sin(2*ph).*sin(2*th)
    ];
end

答案 1 :(得分:0)

我认为你有一个overdetermined equations system,你应该用WLSE模型解决它们。 超定方程系统的方程式多于未知数。 WLSE模型使用一种算法来解决这些系统,该算法可以帮助您编写等式来解决问题。之后,您可以轻松地在MATLAB中编写它们