Skip to main content

SINUSOIDALY DRIVEN STRING


## Takes in the previous and the present profiles of the string and
## iterates to find the profile in the next time step.
function ynext=propagate_driven(ynow,yprev,r,omega,A,n,dt)
## initialization, boundary condition
ynext=ynow;
## takes in length(ynow) as an argument
## since one end of the string is driven sinuosidaly
## omega is the angular frequency of the driven force
## n is the time index, n*dt is t(n)
ynext(length(ynow))=A*sin(omega*n*dt);
## entering the loop
for i=2:length(ynow)-1
ynext(i) = 2*(1-r^2)*ynow(i)-yprev(i)+r^2*(ynow(i+1)+ynow(i-1));
endfor
endfunction

Comments

Popular posts from this blog

SIMPLE AND MODIFIED EULER METHOD

##Usage:Call Octave from terminal ##and then call EulerMethodUmitAlkus.m ##from octave and finally ##press enter. That's all. ##Simple Euler Method ##Constants and initializations x=[]; ## initial empty vector for x y=[]; ## initial empty vector for y x(1)=1; ## initial value of x y(1)=1; ## initial value of y h=1E-3; ## increment in x dery=[]; ## 1st derivative of y wrt x dery(1)=0;## 1st entry of dery n=1; ## inital loop index for while ## enter the while loop for the interval x=[1,2] while (x(n)<=2) x(n+1)=x(n)+h; dery(n+1)=x(n)*x(n)-2*y(n)/x(n); ##given y(n+1)=y(n)+h*dery(n+1); ##Euler method n++; endwhile ##exit from the 1st while loop ##Modified Euler Method ##Constant and initializations x(1)=1; ## beginnig of the interval [1,2] ymod(1)=1; ## inital value for modified y. ymid=[]; ## empty vector function evaluated at x midpoint xmid=[]; ## empty vector func. of midpoints of the interval h in x-axis. derymod=[]; ## modified derivatives of ymod

TOTAL DISPLACEMENT OF LOOPLESS RANDOM WALK

## A for good and evil as well as loopless ## total displacement function of random walk ## that takes in the step numbers as an ## argument and returns the displacement ## of the rnd walker.Note that the probabilities ## to turn rigth and left are equal but the left ## step is twice the rigth step. ## Usage : rw_uneven(N) function rw_uneven(N) rn=rand(N,1); ## If the element of a random vector r=-(rn<0.5); ## is smaller than 0.5, then return -1, li=find(r == 0); ## Else return 2(equal probability). r(li)=2; x=sum(r) ## total displacement endfunction