hwo would i find a root usiong fzero
2 views (last 30 days)
Show older comments
adriana resendez
on 11 Mar 2015
Answered: Star Strider
on 11 Mar 2015
>> f = @(x) 2-10*x*exp(-0.8*x);
>> fplot(f,[0 10])
>> grid on
function [xmin,fmin,ea,iter] = lab_19(f,xlow,xup,es,maxit)
if nargin<3, error('need 3 inputs')
if nargin<4 || isempty(es),es = .0001; end
if nargin<5 || isempty(maxit), maxit=50; end
%text file iterations
fid = fopen('golden_out.txt','w');
fprintf(fid,'iter.\t xlow\t f(xlow)\t x2\t\t f(x2)\t\t x1\t\t ');
fprintf(fid,'f(x1)\t\t xup\t\t f(xup)\t\t\t ea\n');
%find the root
phi = 0.54*(1+sqrt(5));
x1 =xlow+(phi-1)*(xup-xlow); x2 = xlow+xup-x1;
flow = f(xlow); fup = f(xup); f1 = f(x1); f2 = f(x2);
0 Comments
Accepted Answer
Star Strider
on 11 Mar 2015
If you just want to find and plot the roots, this brute force approach works:
f = @(x) 2-10*x.*exp(-0.8*x);
froot1 = fzero(f, 1);
froot2 = fzero(f, 10);
fplot(f,[0 10])
hold on
plot([froot1 froot2], f([froot1 froot2]), 'r+')
grid on
0 Comments
More Answers (0)
See Also
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!