New to MATLAB - trying to write bisection method?

조회 수: 11 (최근 30일)
AM
AM 2013년 12월 15일
댓글: Walter Roberson 2020년 11월 9일
Hello, I'm brand new to MATLAB and am trying to understand functions and scripts, and write the bisection method based on an algorithm from our textbook. However, I'm running into problems. Could anyone help me please?
Here is my code:
function [f] = Bisection(a,b,Nmax,TOL)
f = x^3 - x^2 + x;
i=1;
BisectA=f(a);
while i <= Nmax
p=a+(b-a)/2;
BisectP=f(p);
if BisectP == 0 || (b-a)/2 < TOL
disp('p');
end
i=i+1;
if BisectA*BisectP > 0
a=p;
BisectA=BisectP;
else
b=p;
end
end
disp('Method failed after num2str(Nmax) iterations, Nmax=', Nmax);
Thanks.
  댓글 수: 3
youcef mokrane
youcef mokrane 2020년 11월 9일
편집: Walter Roberson 2020년 11월 9일
x=4:4.7
f=tan(x)-x
a=4
b=4.7
fa=tan(a)-a
fb=tan(b)-b
n=1
n0=5000
while n<5000
p=(a+b)/2
fp=tan(p)-p
n=n+1
if fa*fp>0
a=p
else
b=p
end
end
Walter Roberson
Walter Roberson 2020년 11월 9일
Why are you bothering to do x=4:4.7 ? The default increment for the colon operator is 1, so 4:4.7 is the same as 4:1:4.7 which is just going to be 4 .
Why are you assigning to n0 when you do not use it?

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

채택된 답변

Walter Roberson
Walter Roberson 2013년 12월 15일
편집: Walter Roberson 2013년 12월 16일
Your line
f = x^3 - x^2 + x;
does not define a function. Try
f = @(x) x^3 - x^2 + x;
  댓글 수: 10
A_J Khan
A_J Khan 2017년 9월 18일
편집: Walter Roberson 2017년 9월 18일
function p = bisection(f,a,b)
|
Error: Function definitions are not permitted in this
context.
I have this error with above code....???
Walter Roberson
Walter Roberson 2017년 9월 18일
You can never define a function at the command prompt: you have to store a function inside a .m file; in this case, bisection.m
In versions up to R2016a you cannot store a function inside a script file (a .m file that does not start with the word "function" or "classdef"). That changed in R2016b.

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

추가 답변 (1개)

Frank Cano
Frank Cano 2019년 4월 15일
Here are some Bisection method examples

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by