Integrate a polyfit-polyval in matlab, I would appreciate any input. I want to calculate the integral of the sine function from a trend li
18 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Juan David Parra Quintero
il 11 Ago 2022
Commentato: Walter Roberson
il 12 Ago 2022
X=[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ];
Y=[ 0 0.017451121 0.034896927 0.052332105 0.069751344 0.08714934 0.104520792 0.121860412 0.139162917 0.156423038 0.173635518 0.190795114 0.207896601 0.224934771 0.241904433 0.258800419 0.275617584 0.292350805 0.308994987 0.32554506 0.341995983 0.358342746 0.374580371 0.390703911 0.406708457 0.422589134 0.438341105 0.453959573 0.469439781 0.484777014 0.4999666 0.515003915 0.529884377 0.544603456 0.559156667 0.573539579 0.587747811 0.601777035 0.61562298 0.629281427 0.642748218 0.65601925 0.669090481 0.681957931 0.694617681 0.707065874 0.719298721 0.731312494 0.743103535 0.754668253 0.766003125 0.7771047 0.787969596 0.798594504 0.808976189 0.819111488 0.828997314 0.838630657 0.848008582 0.857128234 0.865986835 0.874581687 0.882910172 0.890969753 0.898757976 0.90627247 0.913510945 0.920471196 0.927151104 0.933548635 0.939661839 0.945488856 0.95102791 0.956277314 0.96123547 0.965900868 0.970272086 0.974347793 0.978126748 0.9816078 0.984789889 0.987672046 0.990253392 0.992533143 0.994510602 0.996185169 0.997556332 0.998623675 0.999386873 0.999845692 0.999999993 ];
plot(X,Y)
p2=polyfit(X,Y,4);
p3=polyfit(X,Y,3);
hold on
c=polyval(p2,X);
plot(X,c)
FS=7;
leg = legend(["Seno","Aproximacion Seno"],'Location','northwest','Orientation','horizontal','FontSize',FS,"NumColumns",1);
x1 = 12;
x2 = 12;
leg.ItemTokenSize = [x1, x2];
legend('boxoff');
hold off
0 Commenti
Risposta accettata
KSSV
il 11 Ago 2022
%% Integration
p2=polyfit(X,Y,4);
fun = @(x) p2(1)*x.^4+p2(2)*x.^3+p2(3)*x.^2+p2(4)*x+p2(5) ; % using p2 from polyfit
val = integral(fun,X(1),X(end))
Più risposte (1)
Walter Roberson
il 11 Ago 2022
https://www.mathworks.com/help/matlab/ref/polyint.html
polyint() the component vector to get the integral of the polynomial, and polyval to evaluate.
1 Commento
Walter Roberson
il 12 Ago 2022
You are not integrating sin(x), you are integrating sind(x). sind(x) = sin(alpha*x) for alpha = π/180
syms alpha x
int(sin(alpha*x), x, 0, sym(pi)/2/alpha)
ans = 1/alpha
with alpha being π/180, then 1/alpha is 180/π which is 57 point something
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!