# Matlab Indicing (help request)

1. Feb 3, 2006

### Pythagorean

I'm having a helluva time trying to build the index for this code.

First of all, this is homework, I'll admit, but I've done all I could
to research the problem on my own, so I understand the question I'm trying to ask by now, but I still haven't found an answer

Basically, I'm modeling Radioactive Decay in several different ways on
one plot. The issue I'm having is with the Euler method, because it's a numerical approach, and the last three years of my college life has been studying continuous.

Also, I have to use a while loop.

here is the code, followed by my question:

%----------------------------------------------------------------
%EULER
%----------------------------------------------------------------
i=1
t(1)=0
Ne(1)=100

while t>=ti & t<=tf %<---tf and ti are previously defined
t(i)=delt*(i-1)
Ne(i+1)=(1-lam*delt)*Ne(i)
i=i+1
end
plot(t,Ne,'ro')
------------------------------------------------------------------

Before plot even comes on, I can see that Ne will have one more
value than t does, and when I run it (when I run it, it says the matrices must must have an equal ammount of elements and such, and if I scroll
through the run, i can see that Ne has (as I assumed) one more value
than t.

So I try plot(t,Ne(i-1),'ro'), hoping it will return to the whole indix set one period ago for Ne, but no, it just takes the scalar of Ne at the i-1 index and gives me a nice flat line.

Question: How do I cut off the end of the matrices (Ne and t) to the same length like a paper cutter does with paper

OR

How do I enter a final value for one last indice after the loop has created a table (this would go after the 'end' of the loop and before the 'plot'.

2. Feb 5, 2006

### Triss

to select the the 15 first components of a vector t, type t(1:15).

3. Feb 5, 2006

### Pythagorean

I've spent many hours on this code since then. What I actually did was made the line:

t(i)=delt*(i-1)

to say:

t(i+1)=delt*(i)

therefore bumping t up one index (since the first index is already defined as an initial value) which opened up a couple other little problems I had to fix

I'm actually on to Runge-Kutta now. Our teacher gave us an easy three step code for it, but it won't work for me.

I think I have my slope formula wrong. It's supposed to be Radioactive decays first derivative, I thought, but the line doesn't even go in the right direction, so I don't know. I'll be spending all day today trying to figure it out.

i=1
t(1)=ti
Nrk(1)=Not
while Nrk>0 & Nrk<=Not
t(i+1)=ti+delt*i
s=-lam*Nrk(i)*exp(-lam*t(i))
k1=delt*s
k2=(Nrk(i)+k1/2)*delt
Nrk(i+1)=Nrk(i)+k2/2
i=i+1
end
plot(t,Nrk,'b')
clear all