iteration with biscetion method

3 visualizaciones (últimos 30 días)
Claus Madsen
Claus Madsen el 12 de Mzo. de 2013
Hello i need som help with program this code. I have the following parameters in a matrix[1566,1] R, I, Q_min, Q_max, A and d. And i want to solv the eq with the biscetion methode. i want the result to come out in a matriv?
%%%%%%%%%%%%%%%%%%%%%%%%%%Parameter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data=xlsread('ledning.xls');
Q_min=data(:,2);
R=data(:,5)/4; % Hydraulisk radius for fuldløbende ledning
I=data(:,4); %I=I_0 dvs. slope
A=(data(:,5)/2).^2*3.14;
M=75;
d=data(:,5);
for i=1:length(data)
Q_max(i,1)=abs(A(i,1)*M*(I(i,1)/100)^(1/2)*R(i,1)^(2/3));
end
for i=1:length(data)
p(i,1)=Q_min(i,1)/Q_max(i,1);
end
%%%%%%%%%%%%%%%%%%%%%%%%Ligning der skal løses %%%%%%%%%%%%%%%%%%%%%%%%%%%
%Ligningen løses via biscetion metoden
f=@(y) (0.46-0.5*cos(3.14*(y/d))+0.004*cos(2*3.14*(y/d)))-(p); %delfyldningsformel
format long
%%%%%%%%%%%%%%%%%%%%%%%%Betingelser til biscetion %%%%%%%%%%%%%%%%%%%%%%%%
eps_abs = 1e-5;
eps_step = 1e-5; %%%%abs og step angiver hvor tæt resultaterne skal være på hinanden
a = 0; % Initial Guess to your function such that f(a)>0.
b = 0.2; % Initial Guess to your function such that f(b)<0.
%%%%%%%%%%%%%%%%%%%%%%%%Påbegynd loop %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
while (b - a >= eps_step || ( abs( f(a) ) >= eps_abs && abs( f(b) ) >= eps_abs ) )
c = (a + b)/2;
if ( f(c) == 0 )
break;
elseif ( f(a)*f(c) < 0 )
b = c;
else
a = c;
end
end
  1 comentario
Jan
Jan el 12 de Mzo. de 2013
What does the posted code do in opposite to your demands?

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Simulink en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by