Matlab problem: How to calculate a rough, approximate, derivative vector by using the following formula?
1 回表示 (過去 30 日間)
古いコメントを表示
Jabir Al Fatah
2014 年 5 月 27 日
編集済み: George Papazafeiropoulos
2014 年 5 月 31 日
Here is the complete task which I need to solve:
We know that the derivative is the coefficient k of a tangent line with mathematical expression, y=kx + m, that goes through a certain point, P, on a function curve. Lets start with a simple function, namely, y=x^2.
(a) Calculate and Plot this function for -10 < x < 10 with small enough step length to get a smooth curve.
(b) Now, In (a) you calculated two equally long vectors, one for the chosen x values and one with the calculated y values. From these two vectors, we can calculate a rough, approximate, derivative vector that we can call Yprimenum: Use a for-loop to calculate each element of Yprimenum according to the formula:
Yprimenum(i) = (y(i+1) – y(i)) / ∆x Where ∆x is the x step length, or equivallently x(i) – x(i-1)
NOTE: (a) is solved and for the (b) I wrote the following code but not working.
if true
x=-10:10;
for i=1: length(x);
for y=x.^2
Yprimenum=(y(i+1)-y(i))./(x(i)-x(i-1));
end;
end;
display Yprimenum;
end
3 件のコメント
John D'Errico
2014 年 5 月 27 日
Why do you think it necessary to add the "if true" conditional around your code? Silly.
採用された回答
George Papazafeiropoulos
2014 年 5 月 27 日
編集済み: George Papazafeiropoulos
2014 年 5 月 27 日
x=-10:10;
y=x.^2;
Yprimenum=diff(y)./diff(x)
5 件のコメント
George Papazafeiropoulos
2014 年 5 月 31 日
編集済み: George Papazafeiropoulos
2014 年 5 月 31 日
Try this:
% 1st way: for loop
Yprimenum1=zeros(1,2*10);
x=-10:10;
y=x.^2;
for I=2:length(x)
Yprimenum1(I-1)=(y(I)-y(I-1))/(x(I)-x(I-1));
end
% 2nd way: diff
Yprimenum2=diff(y)./diff(x);
% test the results
all(Yprimenum1==Yprimenum2)
Be careful that the length of the approximate derivative is equal to the length of the initial vectors minus 1
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Preprocessing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!