Zaloguj się
Blog na Matlab.pl
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Rownanie różniczkowe
Forum MATLAB Strona Główna-> MATLAB
Post Wysłany: 4 Listopada 2008, Wto 2:14 pm Temat postu: Rownanie różniczkowe Odpowiedz z cytatem
 
AUTOR:
Maxe
Może pisać książki


Dołączył: 04 Lis 2008
Posty: 105
Skąd: Kraków


Ogląda profil użytkownika Wyślij prywatną wiadomość
Z serwera http://www.mathworks.com/matlabcentral/fileexchange/5061
pobierz przykłady programów w formie pliku skompresowanego *zip.

1. W oparciu o plik eqdif1.m zapisz równanie różniczkowe i warunki początkowe w formie wzoru matematycznego.
2. Następnie, w oparciu o plik mh7_1_4.m wykonaj obliczenia metodą ode23s i dwoma innymi metodami dla czasu [0,20].
3. Dobierz nowe, lepsze wartości options oraz popraw czytelność i opisy wykresów (BEZ UZYWANIA MYSZKI)
4. W sprawozdaniu umieść wykresy, użytą funkcję i jej poprawne wywołanie oraz tworzenie i opisywanie rysunków. Można umieścić uwagi.


 

Post Wysłany: 12 Listopada 2008, Sro 8:37 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
Maxe
Może pisać książki


Dołączył: 04 Lis 2008
Posty: 105
Skąd: Kraków


Ogląda profil użytkownika Wyślij prywatną wiadomość
Prosze o pomoc.


 

Post Wysłany: 12 Listopada 2008, Sro 11:31 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
r0g0
Może pisać książki


Dołączył: 06 Lis 2007
Posty: 127
Skąd: Białystok


Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
Witam,

widzę, że jesteś początkującym użytkownikiem tego forum. I dobrze, że tu trafiłeś, ale tutaj powinieneś pytać o konkretne problemy związane z Matlabem.

A Ty podałeś treść całego zadania i nawet nie ma pewności czy sam próbowałeś je rozwiązać. Spróbuj, a jak będziesz miał konkretny problem to pisz.

Pozdrowienia i powodzenia życzę.


 

Post Wysłany: 13 Listopada 2008, Czw 12:41 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
Maxe
Może pisać książki


Dołączył: 04 Lis 2008
Posty: 105
Skąd: Kraków


Ogląda profil użytkownika Wyślij prywatną wiadomość
1. Prosze o wytlumaczenie mi jak z tego

Kod:
function dy =eqdif1(t,y)
dy = [y(2); 4.*sin(t) + 5.*cos(2.*t)+ y(1)];

mogę odczytać warunki początkowe i wzór matematyczny równania różniczkowego?




2.


Jak rizpoczac i wykonac obliczenia metoda ode23s i dwoma innymi metodami dla czasu [0,20]


na podstawie:

Kod:
%-----------------------------------------------------------------
% For use
with the book "MATLAB i Simulink, poradnik uzytkownika"
% by Bogumila and Zbigniew Mrozek, Krakow.
%
ISBN 83-7361-486-9, Copyright (C) Helion 2004.
%-----------------------------------------------------------------
%
disp ('***** rozdzial/chapter 7.4.1 *****')
clear, close all
echo on
format compact
clf
%
%
Rozwiązywanie równań nieliniowych  mh7_4_1
echo on
clear
, close all
%
fplot('[z1(x),zer(x)]',[-2,2])
format compact
format long   
% zwiększenie liczby wyświetlanych cyfr
zera
=roots([1 1 -3 -3])
    
pause(1)
fzero('z1',0)
fzero('z1',[1 2])
fzero('z1',-2)
dokl=z1(zera)    % sprawdzenie poprawności obliczeń
dokl
=polyval([1 1 -3 -3],zera) % sprawdzenie poprawności obliczeń 
format
%
echo
off


 

Post Wysłany: 13 Listopada 2008, Czw 11:11 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
Maxe
Może pisać książki


Dołączył: 04 Lis 2008
Posty: 105
Skąd: Kraków


Ogląda profil użytkownika Wyślij prywatną wiadomość
Kod:
optionsodeset('RelTol',1e-4);             %wartość (1e-4) jest wartością ustawioną przeze mnie, zmień ją na inną
[t,y]= ode45('eqdif1',[0 20], [-1 -2],options);             %funkcja ode45 jest wybrana przeze mnie, możecie zmienić na jedną z dostępnych (ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb)
[
t23,y23]= ode23s('eqdif1',[0 20], [-1 -2],options);    %użyłem funkcji ode23s, ponieważ takie było założenie w zadaniu
[t13,y13]= ode23t('eqdif1',[0 20], [-1 -2],options);    %funkcja ode45 jest wybrana przeze mnie, możecie zmienić na jedną z dostępnych (ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb)
ya=-2.*sin(t)-cos(2.*t);            %dokładne rozwiązanie równania z pkt. 1.
plot
(t,ya,'r',t,y(:,1),'-.',t23,y23(:,1),'m--',t13,y13(:,1),'k:')%wykresy dla wszystkich funkcji wraz z ustaleniem wyglądu (kształt linii i kolor, ustawcie według swoich upodobań J)
s='Porównanie rozwiązania analitycznego z obliczeniami numerycznymi'
title(s)            %nadanie tytułu równego zmiennej s
legend
('ya','ode45','ode23s','ode23t',0)            %wyświetlenie legendy do wykresów
text
(2.5,-7500,'ya = -2sin(t) – cos(2t)')            %podpisanie funkcji (współrzędne początku tekstu,’napis, który mamy wyświetlić) –współrzędne pkt. musisz dobrać do własnych wykresów



co tutaj poprawic?


 

Post Wysłany: 13 Listopada 2008, Czw 1:26 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
r0g0
Może pisać książki


Dołączył: 06 Lis 2007
Posty: 127
Skąd: Białystok


Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
Witam ponownie,

teraz to już przedstawiasz konkretne problemy i możemy podyskutowac :D


Równanie jest zapisane w sposób standardowy.
Wpisz w Matlabie
Kod:
doc odefile

tam w Examples od razu znajdziesz przykład zapisania równania różniczkowego. Tylko musisz to przełożyć na swoje równanie.

A warunki początkowe odczytasz w drugim pliku, przy obliczaniu rozwiązań, np.
Kod:
[t,y]= ode45('eqdif1',[0 16],[-1 -2],options);

- tutaj masz czas 0-16 i warunki poczatkowe y0=-1; y1=-2;
Kod:
doc ode23
tam tez w example 1 jest pokazane co i jak się wpisuje

działaj dalej :D


 

Post Wysłany: 14 Listopada 2008, Pią 11:24 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
Maxe
Może pisać książki


Dołączył: 04 Lis 2008
Posty: 105
Skąd: Kraków


Ogląda profil użytkownika Wyślij prywatną wiadomość
a tak ?

Kod:

function maxe()
    %
Nazwa funkcji z równaniem
    odefun
= 'rownanie';
    %
Wektor czasu
    time
= [0, 20];
    %
Wartości początkowe dla układu równań
    y0
= [-1, -2];

    %
Oszacowanie błędu względnego (1e-3)
    
RelTol = 1e-9;
    %
Oszacowanie maksimum błędu względnego (1e-6)
    
AbsTol = 1e-18;
    %
Zwiększenie n-krotne liczby obliczanych wartości rozwiązania (1)
    
Refine = 1;
    %
Maksymalna długość kroku całkowania
    MaxStep
= 1e-1;


    %
Struktura
    options
= odeset('RelTol', RelTol, 'AbsTol', AbsTol, 'MaxStep', MaxStep);

    %
ODE 23: Modyfikowana metoda Rungego- Kutty
    
[t23, y23]         = ode23(odefun, time, y0, options);
    %
ODE 45: Modyfikowana metoda Rungego- Kutty
    
[t, y]             = ode45(odefun, time, y0, options);
    %
ODE 113: Metoda Adamsa-Bashfortha-Moultona (PECE)
    [
t113, y113]     = ode113(odefun, time, y0, options);
    %
ODE 23s: motoda NDFs i Rosenbrocka
    
[t23s, y23s]     = ode23s(odefun, time, y0, options);
          
    
ya = -2 .* sin(t) - cos(2 .* t);

    %
Narysowanie wykresu
    plot
(t23, y23(:, 1), '--', t113, y113(:, 1), 'm-.', t23s, y23s(:, 1), 'r:');
    %
Dodanie siatki
    grid
;
    %
Ustawienie tytułu wykresu
    title
('Wykres równania różniczkowego: ode23, ode113, ode23s');
    %
Ustawienie etykiety osi X
    xlabel
('Czas');
    %
Ustawienie etykiety osi Y
    ylabel
('OŚ Y');
    %
Ustawienie legendy wykresu
    legend
('ode23', 'ode113', 'ode23s', 0);
    %
Ustawienie tekstu na wykresie
    
%text(3.4, -1.7, 'ya = -2sin(t) - cos(2t)');
end


 

Post Wysłany: 15 Listopada 2008, Sob 12:45 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
r0g0
Może pisać książki


Dołączył: 06 Lis 2007
Posty: 127
Skąd: Białystok


Ogląda profil użytkownika Wyślij prywatną wiadomość Wyślij email
Wygląda bardzo przyzwoicie, możesz być z siebie zadowolony.

Teraz idź i pisz ładne sprawozdanie :D

Pozdrawiam


 

Forum MATLAB Strona Główna-> MATLAB
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 22112032
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Wyjście z nieskończonej(?) pętli i pobieranie danych  (21 Kwietnia 2015, Wto 10:09 am)
Problem z ładowaniem plików z danymi  (20 Kwietnia 2015, Pon 6:10 pm)
Problem z zadaniami Matlaba  (19 Kwietnia 2015, Nie 1:33 pm)
Generowanie zależnych zmiennych gaussowskich  (19 Kwietnia 2015, Nie 12:40 pm)
Dynamiczne tworzenie wykresu  (19 Kwietnia 2015, Nie 11:05 am)
[Pomoc] Najbliższy punkt dla kilku krzywych z cftool - 2D  (17 Kwietnia 2015, Pią 2:42 pm)
Jak wstawić w Simulinku woltomierza amperomierz tak żeby dzi  (16 Kwietnia 2015, Czw 6:21 pm)
Do usuniecia  (14 Kwietnia 2015, Wto 11:49 am)
Aproksymacja  (14 Kwietnia 2015, Wto 11:48 am)
SimMechanics  (13 Kwietnia 2015, Pon 7:13 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum