scientific notation convertion of coefficients of a polynomial
Ältere Kommentare anzeigen
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25;
%% I want Matlab to convert all the coefficients of f(x) like: 7.7315661 e-20 (one digit before decimal and the exponential form with base 10 or e) and give me a modified f(x)
3 Kommentare
Dyuman Joshi
am 27 Jan. 2024
Is the purpose to get the data in that particular format just for display? Or is it something else?
MINATI PATRA
am 27 Jan. 2024
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25;
vpa(f, 8)
Akzeptierte Antwort
Weitere Antworten (2)
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25
f = vpa(f,2)
something like this
1 Kommentar
Dyuman Joshi
am 27 Jan. 2024
Bearbeitet: Dyuman Joshi
am 27 Jan. 2024
@VBBV, nice idea, however, it does not change the notation for all values, please see the coefficients of x^4, x^3, x^2, x^1 and x^0.
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25
c = coeffs(f, 'all') % or
[c, t] = coeffs(f)
Now you can do whatever formatting you want with c.
The 'all' option and/or the second input are useful if one of the powers of x is not present in f, as in this example:
f2 = x^3+2*x+3
c1 = coeffs(f2) % Missing the x^2 term and in a different order
c2 = coeffs(f2, 'all') % Including the x^2 term
[c3, t3] = coeffs(f2) % x^2 (and its coefficient) are not present in both c3 and t3
Kategorien
Mehr zu Christmas / Winter finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

