I had a problem coding in MATLAB. I am trying to use the Newton Raphson iteration here. I want to find lambda_init after the first iteration and the third iteration and compare the two. Also, I want to subtract the DCM from the third iteration to the first to see the difference. I could always just copy and paste the for loop and run it for 1 iterations to compare the difference, but is there an easier way? S = B_mat + B_mat'; kappa = trace(adjoint(S)); % Characteristic Equation (Eqn. 3.73) f = @(x) (x^2 - trace(B_mat)^2 + kappa) * (x^2 - trace(B_mat)^2 - ... dot(z, z)) -(x - trace(B_mat)) * (z'*S*z + det(S)) -... z'*(S'*S)*z; % Derivative of the characteristic equation df =@(x) 2*x*(x^2 - trace(B_mat)^2 - dot(z , z)) + ... 2*x*(x^2 - trace(B_mat)^2 + kappa) + (z'*S*z + det(S)) ; % Calculate the eigenvalue Newton-Raphson iteration lambda_init = 95; lambdas = zeros(4, 1); lambdas(1) = lambda_init; step = zeros(3 ,1); quat = zeros (4, 3); DCM = zeros (3, 3, 3); for i = 1:3 Xn = f(lambda_init) / df(lambda_init); lambda_init = lambda_init - Xn; % get the corresponding attitude estimates rho = lambda_init + trace(B_mat); rho_mat = rho * eye (3) - S; q_unit = [adjoint(rho_mat) * z ; det(rho_mat)]; q_unit = q_unit / norm(q_unit); % store the step size and attitude estimate step(i) = Xn; lambdas(i + 1) = lambda_init; quat(:, i) = q_unit; DCM(:, :, i) = q_DCM(q_unit); end
I had a problem coding in MATLAB. I am trying to use the Newton Raphson iteration here. I want to find lambda_init after the first iteration and the third iteration and compare the two. Also, I want to subtract the DCM from the third iteration to the first to see the difference. I could always just copy and paste the for loop and run it for 1 iterations to compare the difference, but is there an easier way? S = B_mat + B_mat'; kappa = trace(adjoint(S)); % Characteristic Equation (Eqn. 3.73) f = @(x) (x^2 - trace(B_mat)^2 + kappa) * (x^2 - trace(B_mat)^2 - ... dot(z, z)) -(x - trace(B_mat)) * (z'*S*z + det(S)) -... z'*(S'*S)*z; % Derivative of the characteristic equation df =@(x) 2*x*(x^2 - trace(B_mat)^2 - dot(z , z)) + ... 2*x*(x^2 - trace(B_mat)^2 + kappa) + (z'*S*z + det(S)) ; % Calculate the eigenvalue Newton-Raphson iteration lambda_init = 95; lambdas = zeros(4, 1); lambdas(1) = lambda_init; step = zeros(3 ,1); quat = zeros (4, 3); DCM = zeros (3, 3, 3); for i = 1:3 Xn = f(lambda_init) / df(lambda_init); lambda_init = lambda_init - Xn; % get the corresponding attitude estimates rho = lambda_init + trace(B_mat); rho_mat = rho * eye (3) - S; q_unit = [adjoint(rho_mat) * z ; det(rho_mat)]; q_unit = q_unit / norm(q_unit); % store the step size and attitude estimate step(i) = Xn; lambdas(i + 1) = lambda_init; quat(:, i) = q_unit; DCM(:, :, i) = q_DCM(q_unit); end
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
I had a problem coding in MATLAB. I am trying to use the Newton Raphson iteration here. I want to find lambda_init after the first iteration and the third iteration and compare the two. Also, I want to subtract the DCM from the third iteration to the first to see the difference. I could always just copy and paste the for loop and run it for 1 iterations to compare the difference, but is there an easier way?
S = B_mat + B_mat';
kappa = trace(adjoint(S));
% Characteristic Equation (Eqn. 3.73)
f = @(x) (x^2 - trace(B_mat)^2 + kappa) * (x^2 - trace(B_mat)^2 - ...
dot(z, z)) -(x - trace(B_mat)) * (z'*S*z + det(S)) -...
z'*(S'*S)*z;
% Derivative of the characteristic equation
df =@(x) 2*x*(x^2 - trace(B_mat)^2 - dot(z , z)) + ...
2*x*(x^2 - trace(B_mat)^2 + kappa) + (z'*S*z + det(S)) ;
% Calculate the eigenvalue Newton-Raphson iteration
lambda_init = 95;
lambdas = zeros(4, 1);
lambdas(1) = lambda_init;
step = zeros(3 ,1);
quat = zeros (4, 3);
DCM = zeros (3, 3, 3);
for i = 1:3
Xn = f(lambda_init) / df(lambda_init);
lambda_init = lambda_init - Xn;
% get the corresponding attitude estimates
rho = lambda_init + trace(B_mat);
rho_mat = rho * eye (3) - S;
q_unit = [adjoint(rho_mat) * z ; det(rho_mat)];
q_unit = q_unit / norm(q_unit);
% store the step size and attitude estimate
step(i) = Xn;
lambdas(i + 1) = lambda_init;
quat(:, i) = q_unit;
DCM(:, :, i) = q_DCM(q_unit);
end
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 2 steps
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education