Ce50p 5 Lab3 Number2b
Ce50p 5 Lab3 Number2b
function ce50p_5_lab3_number2b
clc; clear;
P1 = 100;
P2 = 150;
P3 = 50;
% Solver Settings
tol = 1e-4;
max_iter = 100;
eps_safe = 1e-10;
% Compute Residuals
F = [
k1 * d1^g1 + R1;
k2 * (d2 - d1)^g2 + R1 + P1;
k3 * (d3 - d2)^g3 + R1 + P1 + P2;
k4 * (-d3)^g4 + R1 + P1 + P2 + P3
];
% Jacobian Matrix
J = zeros(4);
J(1,1) = 1;
J(1,2) = k1 * g1 * d1^(g1 - 1);
J(2,1) = 1;
J(2,2) = -k2 * g2 * (d2 - d1)^(g2 - 1);
J(2,3) = k2 * g2 * (d2 - d1)^(g2 - 1);
J(3,1) = 1;
J(3,3) = -k3 * g3 * (d3 - d2)^(g3 - 1);
J(3,4) = k3 * g3 * (d3 - d2)^(g3 - 1);
J(4,1) = 1;
J(4,4) = -k4 * g4 * (-d3)^(g4 - 1);
dx = -J \ F;
1
% Update Loop
success = false;
for trial = 1:20
alpha = 0.5^(trial - 1);
x_new = x + alpha * dx;
% Deformation Check
if (d1n > eps_safe) && ...
(d2n - d1n > eps_safe) && ...
(d3n - d2n > eps_safe) && ...
(-d3n > eps_safe)
success = true;
break;
end
end
x = x_new;
end
% Final Output
R1 = x(1); Delta1 = x(2); Delta2 = x(3); Delta3 = x(4);