Aquí hay una función corta para calcular los valores de la función
función x = poli (x1)
x = 2 * x1 ^ 4 – x1 ^ 3 – 4 * x1 ^ 2 + x1 +1;
fin
Ok, entonces tengo un script genérico de método de Newton. Lo reescribí para la función.
- ¿Quién inventó las matemáticas? ¿Cómo se desarrollaron las matemáticas desde matemáticas básicas hasta álgebra, trigonometría, cálculo, geometría, etc.? ¿Cuál es la historia de las matemáticas?
- ¿Qué es mejor MS en matemáticas o MS en matemáticas aplicadas?
- ¿Cómo calcularías [math] \ ln (a + bi) [/ math]?
- Cómo obtener al menos 50/100 en el próximo examen de matemáticas (20 de marzo)
- ¿Es la práctica la única forma de sobresalir en matemáticas?
x = 1.5;
Tol = 0,0000001;
cuenta = 0;
dx = 1.5; % este es un valor falso para que el ciclo while se ejecute
f = .25; % porque f (-2) = – 13
fprintf (‘paso x dx f (x) \ n’)
fprintf (‘—- ———– ——— ———- \ n’)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
xVec = x; fVec = f;
while (dx> Tol || abs (f)> Tol)% tenga en cuenta que es necesario definir dx yf para que esta declaración continúe
cuenta = cuenta + 1;
fprime = 8 * x ^ 3 -3 * x ^ 2 -8 * x + 1;
xnew = x – (f / fprime); % calcula el nuevo valor de x
dx = abs (x-xnuevo); % calcula cuánto x ha cambiado desde el último paso
x = xnuevo;
f = 2 * x ^ 4 -x ^ 3 -4 * x ^ 2 + x +1; % calcula el nuevo valor de f (x)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
fin
paso x dx f (x)
—- ———– ——— ———-
0 1.50000000 1.50000000 0.25000000
1 1.47297297 0.02702703 0.01329742
2 1.47136583 0.00160714 0.00004546
3 1.47136030 0.00000553 0.00000000
4 1.47136030 0.00000000 0.00000000
>>
x = 1;
Tol = 0,0000001;
cuenta = 0;
dx = 1.5; % este es un valor falso para que el ciclo while se ejecute
f = -1; % porque f (-2) = – 13
fprintf (‘paso x dx f (x) \ n’)
fprintf (‘—- ———– ——— ———- \ n’)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
xVec = x; fVec = f;
while (dx> Tol || abs (f)> Tol)% tenga en cuenta que es necesario definir dx yf para que esta declaración continúe
cuenta = cuenta + 1;
fprime = 8 * x ^ 3 -3 * x ^ 2 -8 * x + 1;
xnew = x – (f / fprime); % calcula el nuevo valor de x
dx = abs (x-xnuevo); % calcula cuánto x ha cambiado desde el último paso
x = xnuevo;
f = 2 * x ^ 4 -x ^ 3 -4 * x ^ 2 + x +1; % calcula el nuevo valor de f (x)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
fin
paso x dx f (x)
—- ———– ——— ———-
0 1.00000000 1.50000000 -1.00000000
1 0.50000000 0.50000000 0.50000000
2 0.68181818 0.18181818 -0.06242743
3 0.66297777 0.01884041 -0.00019528
4 0.66291844 0.00005934 -0.00000000
5 0.66291844 0.00000000 -0.00000000
>>
x = -.5;
Tol = 0,0000001;
cuenta = 0;
dx = 1.5; % este es un valor falso para que el ciclo while se ejecute
f = -33 / 64; % porque f (-2) = – 13
fprintf (‘paso x dx f (x) \ n’)
fprintf (‘—- ———– ——— ———- \ n’)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
xVec = x; fVec = f;
while (dx> Tol || abs (f)> Tol)% tenga en cuenta que es necesario definir dx yf para que esta declaración continúe
cuenta = cuenta + 1;
fprime = 8 * x ^ 3 -3 * x ^ 2 -8 * x + 1;
xnew = x – (f / fprime); % calcula el nuevo valor de x
dx = abs (x-xnuevo); % calcula cuánto x ha cambiado desde el último paso
x = xnuevo;
f = 2 * x ^ 4 -x ^ 3 -4 * x ^ 2 + x +1; % calcula el nuevo valor de f (x)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
fin
>> newton1
paso x dx f (x)
—- ———– ——— ———-
0 -0.50000000 1.50000000 -0.51562500
1 -0.34134615 0.15865385 0.25951027
2 -0.42606937 0.08472322 -0.00895327
3 -0.42331043 0.00275895 -0.00000423
4 -0.42330912 0.00000130 -0.00000000
5 -0.42330912 0.00000000 -0.00000000
>>
x = -3/2;
Tol = 0,0000001;
cuenta = 0;
dx = 1.5; % este es un valor falso para que el ciclo while se ejecute
f = 43/4; % porque f (-2) = – 13
fprintf (‘paso x dx f (x) \ n’)
fprintf (‘—- ———– ——— ———- \ n’)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
xVec = x; fVec = f;
while (dx> Tol || abs (f)> Tol)% tenga en cuenta que es necesario definir dx yf para que esta declaración continúe
cuenta = cuenta + 1;
fprime = 8 * x ^ 3 -3 * x ^ 2 -8 * x + 1;
xnew = x – (f / fprime); % calcula el nuevo valor de x
dx = abs (x-xnuevo); % calcula cuánto x ha cambiado desde el último paso
x = xnuevo;
f = 2 * x ^ 4 -x ^ 3 -4 * x ^ 2 + x +1; % calcula el nuevo valor de f (x)
fprintf (‘% 3i% 12.8f% 12.8f% 12.8f \ n’, cuenta, x, dx, f)
fin
paso x dx f (x)
—- ———– ——— ———-
0 -1.50000000 1.50000000 10.75000000
1 -0.98192771 0.51807229 -1.03260480
2 -1.62282710 0.64089939 6.98808554
3 -1.37421765 0.24860945 1.79972943
4 -1.24952286 0.12469478 0.33149837
5 -1.21385814 0.03566472 0.02301586
6 -1.21098761 0.00287053 0.00014249
7 -1.21096961 0.00001799 0.00000001
8 -1.21096961 0.00000000 0.00000000