필터 지우기
필터 지우기

Results of Newton-Raphson method to find the root ?

조회 수: 4 (최근 30일)
zayed
zayed 2011년 12월 31일
Hi,
I need to solve the following equation by using Newton-raphson method :
a. f(lambda)=-z'*inv(M)*inv(W)*Q*inv(W)*inv(M)*z,
W=inv(M)+lambda*Q
f'(lambda)=z'*inv(M)*inv(W)*(Q^2*inv(W)+inv(W)*Q^2)*inv(W)*inv(M)*z
Q and W are complex square matrices ,also z and M are metrices .
I wrote a code to find the root by Newton's method ,but the value of the root is complex ,but it must be real.I am not sure a bout the derivative of f(x).
I have another form to the function f(x) ,but I don't know if it's suitable to be solved by Newton's method in matlab,the other form is:
m gamma_k*|x_k|^2
b. f(lambda)=sum -----------------------
k=1 (1+lambda(gamma_k))^2
m (gamma_k)^2*|x_k|^2
f'(lambda)= 2* sum --------------------------
k=1 (1+lambda(gamma_k))^3
where gamma_k is sub indices , gamma is eigenvalue
m is total number of eigenvalues of T=(M)^(1/3)*Q*(M)^(1/2)
x=U'*M^(-1/2)*z ,U is eigen vectors of T.
Is this form in (b) of equation suitable to be solved by Newton Raphson method.
The code for form (a):
delta=1e-12;
epsilon=1e-12;
max1=500;
lambda=-1/(2*gamma);
for k=1:max1
zeta=cos(theta);
I=eye(n,n);
Q=zeta*I-p*p';
W=inv(M)+lambda*Q;
y1=2*z'*inv(M)*inv(W)*Q.^2*inv(W)*inv(M)*z;
y=-z'*inv(M)*inv(W)*Q*inv(W)*inv(M)*z;
p1=lambda-y/y1;
err=abs(p1-lambda);
lambda=p1
if (err<delta)
break
end
k
err
end
  댓글 수: 7
Andrew Newell
Andrew Newell 2012년 1월 1일
In (b), the denominator is missing a right parenthesis, so its interpretation is ambiguous.
zayed
zayed 2012년 1월 1일
I fixed the equation of form (b) it.Just I need to represent it in matlab

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2012년 1월 1일
Are you able to find the eigenvalues and eigenvectors of T? If so, then (b) should be straight-forward to code (though perhaps tedious.)
plot the real and imaginary parts of solutions on the same graph, but in different colors or symbols. Use "hold on" and plot each complex point as it is generated. Newton's method will move back and forth on x values, so it is probably best not to attempt to connect the solutions with lines until after all the solutions have been generated, after which you would sort based on the x coordinate.
  댓글 수: 3
Walter Roberson
Walter Roberson 2012년 1월 1일
X = Something;
plot(X, real(lambda), 'r*', X, imag(lambda), 'bs');
If gamma_k is the list of eigenvalues, then
flambda = 0;
for K = 1 : length(gamma_k)
flambda = flambda + gamma_k(K) * x_k(K) / (1+lambda(gamma_k(K)))^2;
end
and likewise for f' .
However, I cannot tell from what you have posted what x_k is. I also cannot tell whether lambda(gamma_k) is intended to indicate multiplication or something else.
There might be vectorized ways of calculating f(lambda), but that is going to depend on what lambda(gamma_k) and x_k mean.
zayed
zayed 2012년 1월 1일
I don't recognize what X mean.
x_k :z'*inv(M)*U ,U is eigenvectors
lambda*(gamma_k) is muliplication
gamma-k is eigen value

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Sparse Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by