## how can I do Iteration in matlab

on 17 Nov 2012

### Azzi Abdelmalek (view profile)

I have an equation of the form

a(x) + x.da/dx = 2x , x= 1:1:12

f(x) is known and has different values for different x. My question is how can I find values of 'a' in matlab through iteration. Am new to matlab and any help is highly appreciated.

### Azzi Abdelmalek (view profile)

on 17 Nov 2012
Edited by Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 17 Nov 2012

save this function with the name dif_eq

```function da=dif_eq(x,a,tim,f)
f1=interp1(tim,f,x)
da=(f1-a)/x;
```

then call the function:

``` t=[0.1:10]; % time vector
x0=0; % initial condition
f=rand(1,numel(t)); % your vector f, same length as vector time t
[X,A]=ode45(@(x,a) dif_eq(x,a,t,f),t,x0);
plot(X,A)```

Ede gerlderlands

### Ede gerlderlands (view profile)

on 17 Nov 2012

Many many thanks ...don't have words for your help....this was so troublesome...

### Azzi Abdelmalek (view profile)

on 17 Nov 2012
Edited by Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 17 Nov 2012

save this funnction with the name dif_eq

```function da=dif_eq(x,a)
f=sin(x); for example
da=(f-a)/x;
```

then type in Matlab command

```[x,res]=ode45(@dif_eq,[1 12],0)
```

Ede gerlderlands

### Ede gerlderlands (view profile)

on 17 Nov 2012

Yes, I did that my actual 'f' is not function actually it is collection of different values. such as 0.4 0.25 0.6.....

Ede gerlderlands

### Ede gerlderlands (view profile)

on 17 Nov 2012

Thanks Azziz , I understand your function but 'a' itself isn't known and that's my problem.

Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 17 Nov 2012

Ede, the problem is not a, we are looking for a. I can't use f with different values in the equation. If I find something I will post it, or someone else will do.