Change the parameter value for iteration

clc;clear;close;
zz0=xlsread('w700.xlsx','Sheet1','A1:ALL1');
zz=xlsread('w700.xlsx','Sheet1','A1:ALL1');
w1=xlsread('winit.xlsx','Sheet1','A1:ALL1');
bheta=75e-06;
Ep=200e09;
H=1.3e09;%GPa
we=((0.94*H/Ep)^2)*bheta;
wp=54*we;
Ft=85;%kNfor initial number
Fie=0;
Fip=0;
Fiep=0;
gamma_2new=10;
b=1;
error=1;
iter=0;
R=0.00968;%m
cP=13.95;
nyu0=cP*0.001;%Pas
U = 11.1;%m/s
alpha=(0.6+0.965*log10(cP))*10^(-8);
W=Ft/(Ep*R*bheta);
Ue=(nyu0*U)/(Ep*R);
G=alpha*Ep;
Hri=3*(W*(Ue^-0.5))^-1;
Hei=2.621*(W*(Ue^-0.5))^-0.2;
Hrp=1.287*(G*Ue^-0.25)^(2/3);
Hep=1.311*(W*Ue^-0.5)^(-1/8);
zz2=zz.^2;
ys=(sqrt(sum(zz2)/1000)/4);
hc=0.5e-06;
fc_2=0;
while error>0.00005
w=w1;
gamma_2=gamma_2new;
while b<1000
if w(1,b)<0
w(1,b)=0;
else
w(1,b)=w(1,b);
end
if w(1,b)< we Fie=Fie+(4/3)*Ep*(bheta^0.5)*(w(1,b)^0.5);
zz(1,b)= zz(1,b);
elseif w(1,b)>wp
Fip=Fip+(H*2*pi()*bheta*w(1,b));
zz(1,b)= zz(1,b)- w(1,b);
elseif w(1,b)>0
Fiep=Fiep+(H-(0.6*H*((log(wp))-(log(w(1,b))))/((log(wp))-(log(we)))))*(pi()*bheta*w(1,b)*(1-(2*((w(1,b)-we)/(wp-we))^3)+(3*((w(1,b)-we)/(wp-we))^2)));
zz(1,b)= zz(1,b)- w(1,b);
else
end
b=b+1;
end
fc_2=Fie+Fip+Fiep;
gamma_2new=Ft/fc_2;
gamma_1=1/(1-(1/gamma_2new));
s=1/5*(7+exp(-(2*(gamma_1^(-2/5))*Hei)/Hri));
Hc=(gamma_1^(s/2)*(Hri^(7/3)+((gamma_1^(14/15))*(Hei^(7/3))))^(3*s/7)+(gamma_1^(-s/2)*(Hrp^(-7/2)+(Hep^(-7/2)))^(-2*s/7)))^(1/s)*(gamma_1^(1/2));
hc=Hc*R/(Ue^-0.5);
w1=zz-hc+ys;
error=abs((1/gamma_2new)-(1/gamma_2)/(1/gamma_2));
iter=iter+1;
end

5 Comments

I already run the progrem, but it seems that it will not converge. I wonder I should have make mistake on the loop process. I attached the flow chart.
Thank you for helping!
Can you elaborate this question with example?
Make sure, in each iteration, that the error is increasing, have you checked?
error=abs((1/gamma_2new)-(1/gamma_2)/(1/gamma_2));
The error not increasing but show the same value.
In this program, I want the number of w is change until the gamma value has small error. and I can get the gamma_2 and the final w value as the result.
I attached the result I get. But in this result, the iteration hasn't stopped.
Store the error data in an array (each iteration), please check it again

Sign in to comment.

Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!