I need help how to plot for a different initial values of v0 at same time.
if zspan=[0,400]; v0=[1;0.01;0.12;]; % Initial values
% Creating a matrix
zsol = [];v1sol = [];v2sol = [];v3sol = [];options=odeset('RelTol',1e-2,'AbsTol',1e-6,'Events',@events);[t,v] = ode45(@(t,v)rhs(t,v), zspan, v0,options);zsol = [zsol;t];v1sol = [v1sol;v(:,1)];v2sol = [v2sol;v(:,2)];v3sol = [v3sol;v(:,3)];figure(1)plot(abs(v1sol),zsol,'r')xlabel('Volume Flux, V')ylabel('Height, z')grid on ; figure (2)plot(abs(v2sol),zsol,'g')xlabel('Momentum Flux, M')ylabel('Height, z')grid on ;function [rho, Nsqr]=density1(z)%%Data for density with respect to depth
zval= [2 3 5 7 10 15 20 25 30 40 50 60 70 80 90 100 125 150 160 175 200 225 250 275 300 325 350 375 400];rho1 = [17.2731684 17.1649375 21.43455647 22.4140625 23.86332207 24.3746967 24.70487685 24.6003125 24.8933125 25.42772826 26.03220776 26.439625 26.8151875 26.86830797 27.1949375 27.34406944 27.5551875 27.728625 27.23423729 27.88542857 27.752249049 28.1025 28.2415 28.37 28.05366667 28.6565 28.7755 28.898 29.013]; rho0=29;g=9.8;zvala=400-zval;zvalue=fliplr(zvala);rho2=fliplr(rho1);rho3=smoothdata(rho2,'lowess',6);rho=interp1(zvalue,rho3,z);rho4=interp1(zvalue,rho3,z+0.1);Nsqr=(-g./rho0).*(rho4-rho);endfunction parameters=rhs(z,v) [~,Nsqr]=density1(z); alpha=0.116; dV= 2*alpha*sqrt(v(2)); dM= (v(1).*v(3))./v(2); dF= -Nsqr.*v(1); parameters=[dV;dM;dF]; end function [value, terminate, direction] = events(t,v) value = v(1); terminate=1; direction=0; endend
Best Answer