function points=refine(x1, x2, tol)
xm = (x1+x2)./2;
if abs((f(x1)+f(x2))./2-f(xm))<tol
points=[x1,x2];
else
left=refine(x1, xm, tol);
right=refine(xm, x2, tol);
points=[left, right(2:length(right))];
end
end
function linearinterp
x=linspace(-5, 2*pi, 30);
y=exp.^(-x./2).*sin(x^.2+8);
points=refine(0, 7, 0.1);
plot(x, y, points, f(points), 'r+');
hold on
plot(points, f(points));
hold off
end

댓글 수: 2

Azzi Abdelmalek
Azzi Abdelmalek 2014년 2월 11일
How are we supposed to know? no error message, no details about how you ran your two functions ...
Ehi Eromosele
Ehi Eromosele 2014년 2월 12일
Sorry. I put in the tags section.

댓글을 달려면 로그인하십시오.

 채택된 답변

Walter Roberson
Walter Roberson 2014년 2월 12일

0 개 추천

You cannot just press F5 or click on "run". You need to go to the command window and call the function like you were putting it into a program. For example,
refine(1.343, 83.60, 1e-6)

댓글 수: 2

Ehi Eromosele
Ehi Eromosele 2014년 2월 12일
Yea I put refine(0, 7, 0.1). but there is still arguements.
Walter Roberson
Walter Roberson 2014년 2월 12일
Where did you define "f" ?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2014년 2월 12일

0 개 추천

exp.^(-x./2) is not proper. exp is a function, not the value "e", so it must be immediately followed by a left parenthesis: exp(-x/2). You do not need the dot before the slash because 2 is a scalar, not an array.

카테고리

도움말 센터File Exchange에서 Entering Commands에 대해 자세히 알아보기

질문:

2014년 2월 11일

댓글:

2014년 2월 12일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by