MATLAB: How to perform pinv with symbolic values without loosing precision comes from vpa function

pinvvpa

R =
[4157066.11113704969163796320578974731594179835134484
671429.665455965103663684268506862702153063263269903
4774879.36997573773279084890656259223520006856252447]
% R 3×1 112 sym
R=R_new
J=
[ -0.36997573773279084890656259223520006856252447
0.665455965103663684268506862702153063263269903
0.36997573773279084890656259223520006856252447]
R_new=vpa(R- (pinv(J'*J)))
%it gives error because J is a symbolic, how can I perform pinv(J'*J) without loosing precision
%I tried R_new=vpa(R- (pinv(double(J'*J)))) but double conversion loses precision of J'*J

Best Answer

Which MATLAB version are you using? The current release can do pinv() of a symbolic matrix; see http://www.mathworks.com/help/symbolic/pinv.html
Related Question