the program is plotted once, then showing error, is something error in program
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
KSSV
2022-7-21
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)
采纳的回答
KSSV
2022-7-21
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!