Wpis z mikrobloga

Mam taki kod w matlabie:
funkcja

function dy = uklad(t,y)

% funkcja modelujaca uklad rlc

R = 1;

L = 100;

C = 50;

dy = zeros(2,1);

dy(1) = y(2);

dy(2) = (-R*C*y(2)-y(1))/(L*C);


kod do moetody eulera zwykła

function [t,y]=euler_zwykla(f,tinit,yinit,tfinal,n)

% Zwykła metoda Eulera

% Obliczenia kroku

h=(tfinal-tinit)/n;

% Przygotowanie wektorów początkowych t i y

t=[tinit; zeros(n,1)]; y=[yinit; zeros(n,1)];

% Obliczenia t i y

for i=1:n

t(i+1)=t(i)+h;

y(i+1)=y(i)+h*f(t(i),y(i));

end


i skrypt, który łączy 2 poprzednie i ma policzyć

[t,y] = euler_zwykla(@ukladrlc,0,[70 0],10000,6000);

plot(t,y);

title('Układ RLC')

xlabel('czas')

ylabel('napięcie')

legend('U(t)');


Matlab mówi, że w ostatnim skrypcie pierwsza linijka jest źle. Jak dla mnie wygląda ok. Nazwy skryptów dobrze wpisałem.
#matlab #programowanie
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KrzaQ2: Jest zbędne. Funkcja też jest dobrze, bo liczy mi metodą ode poprawnie. Zauważyłem, też że nie pasuje mu w eulerze 6 linijka kodu. Ale porównywałem z tym co robiliśmy na zajęciach i jest ok. Nie ogarniam.
  • Odpowiedz