Matlab - metodo de biseccion urgente

 
Vista:

metodo de biseccion urgente

Publicado por has (1 intervención) el 02/04/2009 00:27:33
tengo este codigo, pero en matlab reconoce errores, soy nueva con este programa entonces no se como sera la sintaxis... gracias por sus respuestas

FUNCION= input('teclee funcion')
syms x,'>';

a= input('teclee a de 0 a 0.5')
b= input('teclee b de 1')
delta= input('teclee delta')
ya=feval(FUNCION,a);
yb=feval(FUNCION,b);
if ya*yb > 0,
disp('error, los signos deben ser distintos en (a,b)');
end
max1=1+round((log(b-a)-log(delta))/log(2));
fori=1:max1
while ((b-a)*0.5>delta)
c=(b+a)/2;
w=(FUNCION,c);
eval(['n=' num2str(n)])
eval(['c=' num2str(c)])
eval(['f(c)=' num2str(w)])
end
if SIGN(ya)==SIGN(w)
a=c;
ya=w;
else
b=c;
yb=w;
end
n=n+1;
end;
x=c;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

metodo de biseccion urgente

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 12/10/2018 20:04:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
clear all
syms x FUNCION(x)
FUNCION(x)= input('teclee funcion:') ;
a= input('teclee a de 0 a 0.5: ') ;
b= input('teclee b de 1:') ;
delta= input('teclee delta:');
% FUNCION(x)=exp(x)-2;
% a=0;
% b=1;
% delta=0.0001;
ya=FUNCION(a);
yb=FUNCION(b);
if ya*yb > 0
disp('error, los signos deben ser distintos en (a,b)');
end
max1=1+round((log(b-a)-log(delta))/log(2));
n=0;
for i=1:max1
if (b-a)*0.5>delta
c=(b+a)/2;
w=double(FUNCION(c));
disp(['n=' num2str(n)])
disp(['c=' num2str(c)])
disp(['f(c)=' num2str(w)])
end
if sign(ya)==sign(w)
    a=c;
    ya=w;
else
    b=c;
    yb=w;
end
n=n+1;
end
x=c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
>> biseccion13
teclee funcion:exp(x)-2
teclee a de 0 a 0.5: 0
teclee b de 1:1
teclee delta:0.000001
n=0
c=0.5
f(c)=-0.35128
n=1
c=0.75
f(c)=0.117
n=2
c=0.625
f(c)=-0.13175
n=3
c=0.6875
f(c)=-0.011263
n=4
c=0.71875
f(c)=0.051867
n=5
c=0.70313
f(c)=0.020056
n=6
c=0.69531
f(c)=0.0043353
n=7
c=0.69141
f(c)=-0.0034788
n=8
c=0.69336
f(c)=0.00042443
n=9
c=0.69238
f(c)=-0.0015282
n=10
c=0.69287
f(c)=-0.0005521
n=11
c=0.69312
f(c)=-6.3891e-05
n=12
c=0.69324
f(c)=0.00018026
n=13
c=0.69318
f(c)=5.8179e-05
n=14
c=0.69315
f(c)=-2.8572e-06
n=15
c=0.69316
f(c)=2.7661e-05
n=16
c=0.69315
f(c)=1.2402e-05
n=17
c=0.69315
f(c)=4.7722e-06
n=18
c=0.69315
f(c)=9.5748e-07
 
x =
 
    0.6931

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar