Solve function supports only four decimal points
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Is there a way to solve a system of equations like this with double precision without rounding? The theta vector here has precision double. But unless I limit the number of decimal points to 4 or fewer, I dont get an answer.
ts = 0.002;
syms a b;
eqn1 = 2+a*ts == 1.97720865074869;
eqn2 = -1-a*ts == -0.977208098949782;
eqn3 = ts^2*b == 0.00103667507747696;
%Note: solve function seems to accept only 4 decimal places.
%The round command is to accomodate this. Has nothing to do with the math.
sol = solve([eqn1, eqn2, eqn3],[a,b]); %solve for a and b, ts is known
aSol=double(sol.a)
bSol=double(sol.b)
If I just use double or increase the number of decimals to 5 I get : 0×1 empty double column vector.
0 Commenti
Risposte (2)
Walter Roberson
il 31 Mag 2022
Add the first two equations. The a*ts cancel out, leaving the equation 1 = theta1 + theta2. If that equation is not satisfied then there cannot be any solution to the system.
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!