I am trying to solve an ode with an unknown parameter. I am not sure If I am doing it in the right way. 'Not enough input arguments'
tol = 10^-3; % Treshold
MAX = 100;H = 0; interval = [0.01 0.2]; % alpha interval
a = interval(1);b = interval(2);alpha = (a+b)/2;v0=[1 0.01 1];[z,v]=ode45(@rhs,interval,v0,alpha);iter = 1;while(abs((v(end, 2)) - H) > tol)alpha= (a + b)/2;[z,v]=ode45(@rhs,zspan,v0,alpha);endif(v(end, 2) - H > 0)b = alpha;elsea = alpha;enditer = iter + 1;if(iter > MAX)return;endfunction parameters=rhs(z,v,alpha) da= 2*alpha-(v(1).*v(3))./(2*v(2).^2); db= (v(3)./v(2))-(2*alpha*v(2)./v(1)); dc= -(2*alpha*v(3)./v(1)); parameters=[da;db;dc];end
Best Answer