Dear Friends,
I need to plot ABS(B(1)) Vs delk in the following program code. How can i include delk variable in the ode45 function calling line.

 Akzeptierte Antwort

Torsten
Torsten am 28 Jan. 2015

0 Stimmen

Please make more clear what you try to plot.
As far as I can see, delk is a model parameter (scalar).
B is a vector (solution at different times).
You can't plot a vector over a scalar.
I guess you want to plot different solutions B over time for different values of delk.
For this puropse, you have to generate different solutions B (e.g. in a loop in which you call ODE45 several times for changing values of delk).
Best wishes
Torsten.

9 Kommentare

Pavan Kumar
Pavan Kumar am 28 Jan. 2015
Bearbeitet: Pavan Kumar am 28 Jan. 2015
Hi Torsten.
Thanks for your answer.
In my program, delk is a function of kp,ks and ki which are in turn dependent on Lp,Ls and Li respectively. So,delk is unique for each value of Ls,Lp and Li and will be continous for a range of Ls as shown.This inturn makes Abs(B(1)) continous function of Ls.I need to plot Abs[B(1)]^2 vs delk in my program
Torsten
Torsten am 28 Jan. 2015
Again my question:
For each value of L_s, you get a function B(1) over the interval [0 3] in your example above.
How do you want to plot a function (B(1)) over a scalar (L_s) ?
Best wishes
Torsten.
Pavan Kumar
Pavan Kumar am 28 Jan. 2015
Torsten,
As mentioned above,Change in Ls changes delk which inturn changes B(1).
It would be a 3-D plot with abs[B(1)],Z1 and delk on each of the axis.
Pavan Kumar
Pavan Kumar am 29 Jan. 2015
Hii Torsten,
I don't know if i am right or wrong.But, i followed the avove code for constant delk and got right results so i am following the same for variable delk.
Do advise me.
Pavan
Torsten
Torsten am 29 Jan. 2015
The code you show in the above picture will not run with MATLAB.
Since delk in function DFG789 is a vector, dB will also be a vector.
But dB(1) is a scalar which gives a dimension mismatch.
Best wishes
Torsten.
Pavan Kumar
Pavan Kumar am 29 Jan. 2015
Is it possible to use any other function in matlab in this situation?
I already gave you the solution for this problem:
Call ODE45 in a loop in which you calculate the solution for B(1) for several values of delz.
Delk=[1:20];
for i=1:20
delk=Delk(i)
[Z1,B] = ode45(@(t,x)DFG789(t,x,delk),[0 3],[(0.1) 0 1]);
Z1_complete(i,:,:)=Z1(:,:);
end
Best wishes
Torsten.
Pavan Kumar
Pavan Kumar am 29 Jan. 2015
Thanks a lot..Will try it and come back to you
Pavan Kumar
Pavan Kumar am 2 Feb. 2015
Hii Torsten,
your advise really helped. Thanks a trillion bro...
Pavan

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sara
Sara am 27 Jan. 2015

0 Stimmen

ode45(@(t,x)DFG789(t,x,var_1),.....
Then the function becomes:
function dB = DFG789(Z1,B,var_1)

1 Kommentar

Pavan Kumar
Pavan Kumar am 28 Jan. 2015
Bearbeitet: Pavan Kumar am 28 Jan. 2015
Hii Sara, Thanks for the advise.
I made the following changes
[Z1,B] = ode45(@(t,x)DFG789(t,x,delk),[0 3],[(0.1) 0 1],delk); and
function dB = DFG789(Z1,B,delk)
However, when i try to execute
plot(delk,abs(B(:,1)).^2);
i get the following errors. What can i do?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by