2014-06-17 2 views
0

방정식 시스템에 대해 Newton의 방법을 구현하려고했지만 제대로 작동하지 않는다고 생각합니다. 나는 각도를 60 ° 22.5 -60 ° 정도로해야하지만 지금은 [995 90 -230] 정도가됩니다. 누군가 내 코드에 어떤 문제가 있는지 확인할 수 있습니까? 나는이 변경하면MATLAB의 방정식 시스템에 대한 Newton의 방법

hold on 

l = 2; 
L1 = 1; 
L2 = 1; 
L3 = 1; 
m1 = 1; 
m2 = 1; 

% The system of equations to solve 
%l = L1cos(u1)+L2cos(u2)+L3cos(u3); 
%0 = L1sin(u1)+L2sin(u2)+L3sin(u3); 
%0 = m2tan(u1)-(m1+m2)tan(u2)+m1tan(u3); 

u = [pi/3 pi/8 -pi/3] 

for i = 1:10 
    F = [L1*cos(u(1))+L2*cos(u(2))+L3*cos(u(3))-l, L1*sin(u(1))+L2*sin(u(2))+L3*sin(u(3)), m2*tan(u(1))-(m1+m2)*tan(u(2))+m1*tan(u(3))]; 
    DF = [-L1*sin(u(1)) -L2*sin(u(2)) -L3*sin(u(3)); L1*cos(u(1)) L2*cos(u(2)) L3*cos(u(3)); m2*sec(u(1))^2 -(m1+m2)*(sec(u(2))^2) m1*sec(u(3))^2]; 
    u1 = u' + inv(DF)*F'; 
    u = u1'; 
end 

rad = u1; 
deg = (180/pi)*u1; 
+0

중간 솔루션을 인쇄 할 때 무엇이 ​​보입니까? 로그인 오류가 있습니까? – Floris

답변

1

u1 = u' - inv(DF)*F'; 

에 다음 줄

u1 = u' + inv(DF)*F'; 

를 교체하려고, 내가받을 솔루션은 [60,0, -60] 제대로 해결 않습니다이다 3 개의 방정식.

+0

+1 펀치에 나를 때린다. – rayryeng

관련 문제