Jak rozwiązać równanie różniczkowe?

0

Część,

W simulinku udało mi się to zrobić i wykres jest poprawny ale w matalbie już nie. Nie wiem gdzie jest bład.

treść zadania:

Rozwiązać równanie różniczkowe w Matlabie i Simulinku:

𝑦(4)(𝑡)+4𝑦(3)(𝑡) − 7𝑦(2)(𝑡) + 0.2𝑦(1)(𝑡) − 0.2𝑦(𝑡) = 12

kod matlab:

function [yp]=fun(t,y) 
    yp=zeros(3,1);
    yp(1)=y(2);
    yp(2)=y(3);
    yp(3)=y(4);
    yp(4) = 12-4*y(4)+7*y(3)-0.2*y(2)+0.2*y(1);
end

konsola:

clc; clear
y1=0; y2=0; y3=0; y4=0 
y0=[y1; y2; y3; y4];
tr=0:.1:50;
[t,y]=ode45('fun',tr,y0); 
plot(t,y(:,1),'r',t,y(:,2),'g-.',t,y(:,3),'b--',t,y(:,4),"y*",'LineWidth',2); grid on;
legend('y(1)','y(2)','y(3)','y(4)')

z góry dzięki za pomoc

2
% Definicja równania różniczkowego
ode = @(t, y) [y(2); y(3); y(4); 7*y(2) - 4*y(3) - 0.2*y(2) + 0.2*y(1) - 12];

% Warunki początkowe
initial_conditions = [0; 0; 0; 0];

% Zakres czasu
tspan = [0 10]; % Zakres czasu, np. od 0 do 10

% Rozwiązanie równania różniczkowego
[t, y] = ode45(ode, tspan, initial_conditions);

% Wyświetlenie wyników
figure;
plot(t, y(:, 1), '-o', t, y(:, 2), '-o', t, y(:, 3), '-o', t, y(:, 4), '-o');
legend('y1', 'y2', 'y3', 'y4');
xlabel('Czas');
ylabel('Wartości funkcji y');
title('Rozwiązanie równania różniczkowego');
0
Spine napisał(a):
% Definicja równania różniczkowego
ode = @(t, y) [y(2); y(3); y(4); 7*y(2) - 4*y(3) - 0.2*y(2) + 0.2*y(1) - 12];

% Warunki początkowe
initial_conditions = [0; 0; 0; 0];

% Zakres czasu
tspan = [0 10]; % Zakres czasu, np. od 0 do 10

% Rozwiązanie równania różniczkowego
[t, y] = ode45(ode, tspan, initial_conditions);

% Wyświetlenie wyników
figure;
plot(t, y(:, 1), '-o', t, y(:, 2), '-o', t, y(:, 3), '-o', t, y(:, 4), '-o');
legend('y1', 'y2', 'y3', 'y4');
xlabel('Czas');
ylabel('Wartości funkcji y');
title('Rozwiązanie równania różniczkowego');

ciekawe, wychodzi mi kompletnie inny wykres w simulinku. Może też mam bład
z1-s.pngz1-s-w.pngz1_s.slx

0

Spróbuj zrobić to co pisze ChatGPT: https://chat.openai.com/share/97a348c5-9972-4439-8247-d6ae3821c1e2
Na końcu kowersacji jest opis jak to zrobić w Simulinku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1