Matlab - Metodo Newton

 
Vista:

Metodo Newton

Publicado por Chema (3 intervenciones) el 02/05/2017 17:52:16
Estoy haciendo el metodo de Newton:

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
function [ X ] = Newton( F,x0,e )
i = 1;
Ea = e;
z(1) = x0;
syms x;
df = strcat('diff(',F,')');
ddf = strcat('diff(',F,',2)');
df = eval(df);
ddf = eval(ddf);
while Ea >= e
    x = z(i);
    X(i,1) = i;
    X(i,2) = x;
    f = eval(F);
    ff = eval(df);
    fff = eval(ddf);
    z(i+1) = x -((f * ff)/(ff^2 - (f*fff)));
    if i > 1
        Ea = abs((z(i) - z(i-1))/z(i))*100;
        X(i,3) = Ea;
        if Ea < e
            break;
        end
    else
        X(i,3) = 100;
    end
    i = i + 1;
end
end

1
2
3
4
5
syms x;
f = x^2 -sin(x) -0.5;
 
% funcion f | a1 = 2 y a1 = −1| tolerancia 10^-3 | error = 10^-3 | n = 4 
Newton(f,2,10^-3)

Pero me da este error:

In an assignment A(:) = B, the number of elements in A and B must be the same.

Error in strcat (line 94)
s(pos:pos+len-1) = str;

Error in Newton (line 6)
df = strcat('diff(',F,')');

Error in P5_4 (line 13)
Newton(f,2,10^-3)


No entiendo muy bien lo de A = B
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 Newton

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/05/2017 18:46:01
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
function X  = Newton( F,x0,e )
i = 1;
Ea = e;
z(1) = x0;
syms x;
df = diff(F);
ddf = diff(F,2);
df = eval(df);
ddf = eval(ddf);
while Ea >= e
    x = z(i);
    X(i,1) = i;
    X(i,2) = x;
    f = eval(F);
    ff = eval(df);
    fff = eval(ddf);
    z(i+1) = x -((f * ff)/(ff^2 - (f*fff)));
    if i > 1
        Ea = abs((z(i) - z(i-1))/z(i))*100;
        X(i,3) = Ea;
        if Ea < e
            break;
        end
    else
        X(i,3) = 100;
    end
    i = i + 1;
end
end
 
% syms x, f = x^2 -sin(x) -0.5;Newton(f,2,10^-3)


1
2
3
4
5
6
7
8
>> syms x, f = x^2 -sin(x) -0.5;X=Newton(f,2,10^-3)
X =
    1.0000    2.0000  100.0000
    2.0000    1.0438   91.6041
    3.0000    1.1758   11.2274
    4.0000    1.1958    1.6678
    5.0000    1.1961    0.0254
    6.0000    1.1961    0.0000


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