Can someone check my for loop?
이전 댓글 표시
I have to create a function m file called mylength(f,a,b,n) which takes four inputs:
f: A function handle.
a: A real number.
b: A real number.
n: A positive integer.
Note: You may assume that f(x) is differentiable on [a, b] and that a < b.
Does: Calculates the length of f(x) on [a, b] using the formula L = the integral from a to b of the square root of (1 + f′(x)^2 dx) but with the integral approximated using a for loop to calculate a left sum with [a, b] divided into n subintervals.
Returns: This approximated length.
Here is sample data and correct answers to the sample data.
a = mylength(@(x) x^2,0,2,5)
a = 4.0480127986983730101003658887008
a = mylength(@(x) sin(x),pi,2*pi,10)
a = 3.820197787492867218055528594355
Here is my code.
function l=mylength(f,a,b,n);
syms x;
r=(b-a)/n;
L = sqrt(1+diff(f(x))^2);
l=0;
for q=(a:n-1);
y=subs(f(x),q);
area=r*y;
l=vpa(l+subs(L,r*area));
end
end
It does not return the same answers as the sample data, and I was pretty sure my code was right. Can you please let me know what is wrong with it?
Thanks
댓글 수: 2
Geoff Hayes
2014년 10월 10일
Bri - what are the answers that you are getting?
Bri
2014년 10월 10일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!