1 votos

Método Newton-Raphson- Mismas ecuaciones, 2 raíces correctas, 1 raíz incorrecta

Así que estoy tratando de calcular las raíces de $\phi_1$ verificar esta ecuación para determinar el ángulo de una pala para una turbina de tornillo de Arquímedes basada en 'LA VUELTA DE TUERCA': DISEÑO ÓPTIMO DE UN TORNILLO DE ARQUÍMEDES' (Rorres, 2000) :

$$\sin\biggl(\phi_1-\frac{2\pi}{N}\biggr)+\lambda(\phi_1-\phi_0)-\rho \sin(\phi_0)=0$$

$\lambda,\rho,\phi_0$ y N son conocidos con valores de:

  • $\lambda$ = 3/16
  • $\rho$ = 1/2,
  • $\phi_0=\cos^{-1}(-\frac{\lambda}{\rho})$
  • N = 8

Con estos datos, el valor de $\phi_1$ en el documento es de 441,96°, con ángulos límite $\phi_L$ y $\phi_R$ igual a 162,68° y 343° respectivamente.

He escrito el siguiente script de MatLab para determinar las raíces numéricamente utilizando el método Newton-Raphson:

%% Newton-Raphson Method

clear all
close all
clc

% Vetruvius' Screw
N = 8;
a = 3/16;
b = 1/2;

% Phi 0: Bucket Begins
phi_0 = acos(-(a/b));

% Phi 1: Bucket Ends
f1 = @(x1) sin(x1-(2*pi/N)) + a*x1 - a*phi_0 - b*sin(phi_0);
df1 = @(x1) cos(x1-(2*pi/N)) + a;

% Phi L: Minimum Angular Boundary L
fl = @(xl) sin(xl) + a*xl - a*phi_0 - b*sin(phi_0);
dfl = @(xl) cos(xl) + a;

% Phi R: Minimum Angular Boundary L
fr = @(xr) sin(xr) + a*xr - a*phi_0 - b*sin(phi_0);
dfr = @(xr) cos(xr) + a;

% Plot functions to estimate initial roots
figure(1)
fplot(f1,[-4*pi 4*pi])
title('Initial Functions')
xlabel('x')
ylabel('y')
xticks([-4*pi -3*pi -2*pi -pi 0 pi 2*pi 3*pi 4*pi])
grid on
grid minor
hold on
fplot(fl)
hold on
legend(' Phi 1 ',' Phi L/R ')

% initial guesses
x1(1) = 7.714;  
xl(1) = 2.8;
xr(1) = 6;

for i = 1:1000
    x1(i+1) = x1(i) - (f1(x1(i))/df1(x1(i)));
    xl(i+1) = xl(i) - (fl(xl(i))/dfl(xl(i)));
    xr(i+1) = xr(i) - (fr(xr(i))/dfr(xr(i)));
end

phi_1 = x1(1000) * (180/pi);
phi_l = xl(1000) * (180/pi);
phi_r = xr(1000) * (180/pi);

figure(2)
plot(x1)
title('Newton-Raphson Method to determine the Blade Angles of an 
Archimedes Screw Turbine')
xlabel('Number of Iterations')
ylabel('Blade Angle (rads)')
hold on
plot(xl)
plot(xr)

Espero un valor de unos 7,71 rads (441,96°) para $\phi_1$ pero mi respuesta es mucho más baja, utilizando el mismo método que los otros dos ángulos ( $\phi_L$ y $\phi_R$ ) son más o menos los valores que espero, 162,2º y 343,1º.

¿Alguien puede ver la razón por la que estoy obteniendo valores correctos para $\phi_L$ y $\phi_R$ pero con valores incorrectos para $\phi_1$ utilizando el mismo método?

(Se adjuntan los gráficos de las funciones y las raíces resultantes de mi script).

EDITAR También se adjuntan los resultados del documento para comparar.

Funciones

Raíces resultantes

Raíces resultantes con el bucle modificado

Ángulos esperados

2voto

andy.holmes Puntos 518

Es probable que hayas interpretado mal el valor de N . Aislamiento N de la fórmula para el valor dado sugiere N=3 y, de hecho, la iteración con N=3 tiene los valores

  k           x1                         xl                     xr

  1 : 8.000000000000000          3.000000000000000       6.000000000000000
  2 : 7.730348724105118          2.842377212981511       5.986517565152984
  3 : 7.713755074290903          2.839259277097096       5.986495020153686
  4 : 7.713669321922058          2.839257403087327       5.986495020088732
  5 : 7.713669319598735          2.839257403086645       5.986495020088731
  6 : 7.713669319598736          2.839257403086645       5.986495020088732
  7 : 7.713669319598735          2.839257403086645       5.986495020088731
  8 : 7.713669319598736          2.839257403086645       5.986495020088732

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X