I have this code for a bisection method but I cant seem to figure out why it wont work I just get this error
every thing else is given
any help is appreciated thanks
Error using * Incorrect dimensions for matrix multiplication. Check that thenumber of columns in the first matrix matches the number of rows inthe second matrix. To perform elementwise multiplication, use '.*'.Error in bisectiona>f (line 65)x=(2*Fo/wn.^2-w.^2)*sin((wn-w/2)*t)*sin((wn+w/2)*t);Error in bisectiona (line 14) f_left = f(x_left);function bisectiona% Bisection method: Used for solving an equation, and finding an
% approximate solution to an equation.
clc % The number of bisection steps
n = 32; % define the initial interval
a = 41; b = 69; fprintf('\n initial interval [%g, %g] \n total bisection steps %d\n', a,b,n); % Check that a root does exist in the chosen interval
x_left = a; x_right = b; f_left = f(x_left); f_right = f(x_right); if f_left*f_right > 0 end % Bisection: The method
for i=1:n if f_left == 0 % The exact root of the equation is found at the lower bound
% of the chosen interval
fprintf('\n stage %g root %g with zero absolute error \n',i,x_left); return; end if f_right==0 % The exact root of the equation is found at the upper bound
% of the chosen interval fprintf('\n stage %g root %g with zero absolute error \n',i,x_right); return end % Bisection method: The process
x_mid = (x_left+x_right)/2.0; f_mid = f(x_mid); if f_left*f_mid <= 0 % There is a root in [x_left,x_mid]
x_right = x_mid; f_right = f_mid; end if f_left*f_mid > 0 % There is a root in [x_mid,x_right]
x_left = x_mid; f_left = f_mid; end % Calculate the approximate root for current step
root = (x_left+x_right)/2.0; % Calculate the absolute error for current step
abs_err=(x_right-x_left)/2.0; fprintf('\n stage %g root %g absolute error < %g \n',i,root,abs_err); end %check satisfaction of equation at end of process
residual = f(root); fprintf('\n final residual = %g \n',residual);end %Created Subfunction to define equation f(x)
function f_value = f(~)k = 2800;m = 0.6705;Fo = 2.0535;t = 9.177;x = 0.0253;w = 77:0.1:80;wn= sqrt(k/m);fo= Fo/m;x=(2*Fo/wn.^2-w.^2)*sin((wn-w/2)*t)*sin((wn+w/2)*t);f_value = x;end
Best Answer