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: 125
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:
options=  odeset('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: 125
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: 125
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 19919086
Najwięcej użytkowników 90 było obecnych 29 Maj 2010, Sob 7:37 pm

Aktualnie online:




Najnowsze posty na forum:
Projekt pltytki PCB  (1 Września 2014, Pon 10:15 am)
Model matematyczny wyparnej wieży chłodniczej  (31 Sierpnia 2014, Nie 9:36 pm)
Zlecę wykonanie krótkiego programu w Matlabie  (30 Sierpnia 2014, Sob 8:10 pm)
Weryfikaja mówcy - podjęcie decyzji interpretacja wyników  (30 Sierpnia 2014, Sob 1:58 pm)
Problem w sprzężeniu zwrotnym  (29 Sierpnia 2014, Pią 4:57 pm)
Nazwa pliku  (28 Sierpnia 2014, Czw 5:37 am)
Pytanie do modelu pokazowego w materiałach Mathworks  (27 Sierpnia 2014, Sro 5:40 pm)
GUI rozszerzanie tabeli po wprowadzeniu danych  (26 Sierpnia 2014, Wto 6:11 pm)
Zlecę wynonanie kilku zadań z analizy sygnałów  (24 Sierpnia 2014, Nie 9:44 pm)
Analiza sygnałów (przetwarzanie obrazów, itp)  (24 Sierpnia 2014, Nie 8:56 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