|
Hello guys I have this problem:
x^4=f(x)
f(x)=complicated function of x with powers like -15/4 1/6 a/b etc...
I need to solve this equation which the command "solve" does but too slow.
So I mix the command fzero which need a "guess" solution wich I obtain only one time from the solve command. But the thing is that at some point fzero can't find the solution and gives me NaN. Which obviously are wrong. (I already solve some of the points with the solve command to check if there is no solution but there is a solution.)
So how can I attach this problem?
Here is a portion of the code to get you an idea: (For now x=T_pp2)
syms T_pp2
omega_uno=real(omega(floor(end/3)));
nu_uno=real(nu(1,floor(end/3)));
u_uno=real(u(1,floor(end/3)));
k_abs_ast=4.7e20.*omega_uno.*T_pp2.^(-15/4);
epsilon_ast=k_abs_ast./(k_abs_ast+k_es);
A=solve(T_pp2-(9.*nu_uno.*u_uno.*omega_uno.^2.*(1-0.27.*epsilon_ast.^(5/6)).*(1+(epsilon_ast.^(-1)-1).^(2/3))./(8.*sigma_sb.*0.873.*epsilon_ast.^(-1/6))).^0.25);
A=eval(floor(A));
%%% The code above is the slow one, that is the reason why I only solve but one point at the beginning of my iteration in order to obtain the first solution and put it in the following code.%%%
%from now x=T_p
%%%This is the complicated form of the equation but essentialy is T_p^4=f (T_p)%%%%
f=@(T_pp,u_eq,omega_eq,nu_eq,k_es,sigma_sb) T_pp-(9.*nu_eq.*u_eq.*omega_eq.^2.*(1-0.27.*((4.7e20.*omega_eq.*T_pp.^(-15/4))./((4.7e20.*omega_eq.*T_pp.^(-15/4))+k_es)).^(5/6)).*(1+(((4.7e20.*omega_eq.*T_pp.^(-15/4))./((4.7e20.*omega_eq.*T_pp.^(-15/4))+k_es)).^(-1)-1).^(2/3))/(8.*sigma_sb.*0.873.*((4.7e20.*omega_eq.*T_pp.^(-15/4))./((4.7e20.*omega_eq.*T_pp.^(-15/4))+k_es)).^(-1/6))).^0.25;
for jjt=1:at
for jjx=1:n
omega_uno=omega(jjx);
nu_uno=real(nu(jjt,jjx));
u_uno=real(u(jjt,jjx));
%T_p(jjt,jjx)= fzero(f,A,[],u_uno,omega_uno,nu_uno,k_es,sigma_sb);
T_p(jjt,jjx)= fzero(f,A,[],u_uno,omega_uno,nu_uno,k_es,sigma_sb);
end
jjt
end
%%%The code above is really really fast. But
Any ideas??? please.
|