Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 11. 05. 2013 16:33

TB12
Příspěvky: 67
Reputace:   
 

Metoda sítí - Matlab

Zdravím, mám v Matlabu řešený příklad na metodu sítí pro řešení rovnice vedení tepla explicitní metodou.

Code:

h = 1/3;                 % prostorovy krok
tau = 0.03;              % casovy krok
sig = tau/(h*h);         % koeficient sigma v explicitni metode
a = 0; b = 1;            % interval reseni
xh = a:h:b;              % rozdeleni intervalu s krokem h
n = length(xh);          % pocet uzlu
U0 = sin((pi)*xh);       % pocatecni podminka u0 
hold off
plot(xh,U0)              % nakresleni pocatecni podminky
hold on

U1(1) = 0; U1(n) = 1;    % okrajove podminky - konstantni
U2(1) = 0; U2(n) = 1;
U3(1) = 0; U3(n) = 1;

    
U1(2:n-1) = sig*(U0(1:n-2)+U0(3:n))+(1-2*sig)*U0(2:n-1);
U2(2:n-1) = sig*(U1(1:n-2)+U1(3:n))+(1-2*sig)*U1(2:n-1);
U3(2:n-1) = sig*(U2(1:n-2)+U0(3:n))+(1-2*sig)*U2(2:n-1);


pause
plot(xh,U1)

pause
plot(xh,U2)

pause
plot(xh,U3)


U1
U2
U3

Potřeboval bych to U1, U2, U3 případně ještě další U, dostat do nějakého cyklu, abych to nemusel rozepisovat zvlášť.

Jde to nějak zjednodušit?


Díky.

Offline

 

#2 11. 05. 2013 18:24

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Metoda sítí - Matlab

místo spousty vektorů použij jednu matici

Offline

 

#3 11. 05. 2013 19:32

TB12
Příspěvky: 67
Reputace:   
 

Re: Metoda sítí - Matlab

↑ Stýv:

Diky, ale potřeboval bych poradit, jak na to.

Offline

 

#4 11. 05. 2013 19:40

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Metoda sítí - Matlab

↑ TB12: jak na co? prostě místo Ux(y) budeš psát U(x,y). pak můžeš v cyklu iterovat přes to x

Offline

 

#5 11. 05. 2013 21:18

TB12
Příspěvky: 67
Reputace:   
 

Re: Metoda sítí - Matlab

Tak jsem to zkusil, ale nefunguje mi to, ja by melo:

Code:

for i = 1:10    
    
   U(i,1) = 0; 
   U(i,n) = 1; 

U(2:n-1) = sig*(U(1:n-2)+U(3:n))+(1-2*sig)*U(2:n-1);

end

Nejde mi spravne napsat ta rovnice.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson