the program is plotted once, then showing error, is something error in program
1 view (last 30 days)
Show older comments
format long
a = 0;
b = 4;
h = 0.1;
k = 0.033;
L = 0.5;
s = 0.1;
tc = 70E-9;
n = (b-a)/h ;
t = a + (0:n)*h;
y(1) = 0;
func1 = @(y) ((-(s^2)*k/tc)*sin(y - pi/2) + L*(s^2)/(2*tc)*sin(y + pi/2)/sqrt(1 + cos(y + pi/2)));
for i = 1:n
k1 = func1(y(i));
k2 = func1 (y(i)+(k1/2)*h);
k3 = func1 (y(i)+(k2/2)*h);
k4 = func1(y(i)+(k3*h));
y(i+1) = y(i) + (h/6)*(k1+(2*(k2+k3))+k4);
end
plot(t,y)
==================================
output:- Error using plot
Vectors must be the same length.
2 Comments
KSSV
on 21 Jul 2022
It is working fine...clear you variables once and run the code.
a = 0;
b = 4;
h = 0.1;
k = 0.033;
L = 0.5;
s = 0.1;
tc = 70E-9;
n = (b-a)/h ;
t = a + (0:n)*h;
y(1) = 0;
func1 = @(y) ((-(s^2)*k/tc)*sin(y - pi/2) + L*(s^2)/(2*tc)*sin(y + pi/2)/sqrt(1 + cos(y + pi/2)));
for i = 1:n
k1 = func1(y(i));
k2 = func1 (y(i)+(k1/2)*h);
k3 = func1 (y(i)+(k2/2)*h);
k4 = func1(y(i)+(k3*h));
y(i+1) = y(i) + (h/6)*(k1+(2*(k2+k3))+k4);
end
whos t y
plot(t,y)
Accepted Answer
KSSV
on 21 Jul 2022
You initialize the value of y before for loop.
y = zeros(1,n) ;
y(1) = 0;
func1 = @(y) ((-(s^2)*k/tc)*sin(y - pi/2) + L*(s^2)/(2*tc)*sin(y + pi/2)/sqrt(1 + cos(y + pi/2)));
0 Comments
More Answers (0)
See Also
Categories
Find more on Discrete Data Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!