SlideShare una empresa de Scribd logo
1 de 30
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
1/27
Vrlo mali broj diferencijalnih jednačina se može rešiti analitički.
Pomoću numeričkih metoda može se naći rešenje gotovo svake diferencijalne jednačine.
MATLAB ima obimnu biblioteku funkcija za rešavanje diferencijalnih jednačina.
Obična diferencijalna jednačina (ODJ, eng. ordinary differential equation, ODE) sadrži
nezavisnu promenljivu, zavisnu promenljivu i izvode zavisne promenljive.
𝑑𝑦
𝑑𝑥
= 𝑓(𝑥, 𝑦)
gde je 𝑥 nezavisna promenljiva, a 𝑦 je zavisna promenljiva.
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
2/27
𝑑𝑦
𝑑𝑥
= 𝑓(𝑥, 𝑦)
Rešenje je funkcija 𝑦 = 𝑓(𝑥), koja ispunjava uslove jednačine.
Pošto više funkcija može ispunjavati uslove date ODJ, za rešavanje zadatka potrebni su dodatni
podaci.
Dodatni podaci su vrednost funkcije (zavisne promenljive) za određenu vrednost nezavisne
promenljive.
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
3/27
Metode za rešavanje ODJ:
dsolve
ode45 , pogodna za jednostavne zadatke. Zasniva se na metodi Runge-Kuta
ode23 , pogodna za jednostavne zadatke. Često brža ali manje tačna od ode45
ode113 , pogodna za jednostavne zadatke. Radi u više koraka.
ode15s , pogodna za teže zadatke. Koristi se kada ode45 ne uspeva.
ode23s , pogodna za teže zadatke. Koristi se kada ode15s ne uspeva.
ode23t , pogodna za umereno teške zadatke.
ode23tb , pogodna za teže zadatke. Često je efikasnija od ode15s.
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
4/27
dsolve(dif_jednačina) ,
dsolve(dif_jednačina,c1)
dsolve(dif_jednačina1, dif_jednačina2, c1, c2)
Funkcija dsolve
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
5/27
Funkcija dsolve
Primer
Rešiti diferencijalnu jednačinu
𝑦′ 𝑡 − 𝑦 𝑡 = sin(𝑡)
A) Bez početnog uslova
B) Početni uslov: 𝑥 = 0, 𝑦 = 1; 𝑦 0 = 1
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
6/27
Funkcija dsolve
Primer
Rešiti diferencijalnu jednačinu
𝑦′ 𝑡 − 𝑦 𝑡 = sin(𝑡)
A) Bez početnog uslova
𝑦′ 𝑡 se transformiše u
𝑦 𝑡 se transformiše u
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
7/27
Funkcija dsolve
Primer
Rešiti diferencijalnu jednačinu
𝑦′ 𝑡 − 𝑦 𝑡 = sin(𝑡)
B) Početni uslov: 𝑥 = 0, 𝑦 = 1; 𝑦 0 = 1
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
8/27
Funkcija dsolve
Primer
Rešiti sistem diferencijalnih jednačina:
𝑓′
𝑡 − 𝑓 𝑡 − g 𝑡 = 0; 𝑔′
𝑡 − 𝑓 𝑡 − g 𝑡 = 0;
Uz date početne uslove: 𝑡 = 0, 𝑓 = 1; 𝑓 0 = 1 𝑖 𝑡 = 0, 𝑔 = 2; 𝑔 0 = 2
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
9/27
Funkcija dsolve
Primer
Rešiti sistem diferencijalnih jednačina:
𝑓′
𝑡 − 𝑓 𝑡 − g 𝑡 = 0; 𝑔′
𝑡 − 𝑓 𝑡 − g 𝑡 = 0;
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
10/27
Funkcija dsolve
Primer
Rešiti sistem diferencijalnih jednačina:
𝑓′
𝑡 − 𝑓 𝑡 − g 𝑡 = 0; 𝑔′
𝑡 − 𝑓 𝑡 − g 𝑡 = 0;
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
11/27
Funkcija odenn
Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn
1. korak
Napiše se funkcijska datoteka (skripta pod nazivom ODJ1.m) koja izračunava
𝑑𝑦
𝑑𝑥
, za date
vrednosti 𝑥 i 𝑦.
Primer:
𝑑𝑦
𝑑𝑥
=
𝑥3
− 2 ∙ 𝑦
𝑥
, 1 ≤ 𝑥 ≤ 3; 𝑧𝑎 𝑥 = 1, 𝑦 = 4.2
function dydx=ODJ1(x,y)
dydx=(x^3-2*y)/x;
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
12/27
Funkcija odenn
Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn
2. Korak. Rešava se zadatak:
[x,y] = imefunkcije('imedat',xopseg,y0)
Gde su
imefunkcije – ime numeričke metode koja se koristi (npr. ode45, ode23, itd.)
imedat – ime funkcijske datoteke koja izračunava
𝑑𝑦
𝑑𝑥
za date vrednosti x i y
xopseg – vektor koji zadaje interval rešenja.
y0 – početna vrednost y (vrednost y u početnoj tački intervala).
[x,y] – Rešenje ODJ. x i y su vektori. Broj tačaka i razmak između početne i
završne tačke zavise od ulaznog vektora xopseg.
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
13/27
Funkcija odenn
Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn
𝑑𝑦
𝑑𝑥
=
𝑥3 − 2 ∙ 𝑦
𝑥
, 1 ≤ 𝑥 ≤ 3; 𝑧𝑎 𝑥 = 1, 𝑦 = 4.2
function dydx=ODJ1(x,y) – ovo je napisana skripta ODJ1.m
dydx=(x^3-2*y)/x;
[x,y] = imefunkcije('imedat',xopseg,y0)
[x,y]=ode45('ODJ1',[1:0.2:3],4.2)
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
14/27
Funkcija odenn
Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn
𝑑𝑦
𝑑𝑥
=
𝑥3 − 2 ∙ 𝑦
𝑥
, 1 ≤ 𝑥 ≤ 3; 𝑧𝑎 𝑥 = 1, 𝑦 = 4.2
function dydx=ODJpr1(x,y)
dydx=(x^3-2*y)/x;
[x,y] = imefunkcije('imedat',xopseg,y0)
[x,y]=ode45('ODJpr1',[1:0.2:3],4.2)
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
15/27
Funkcija odenn
Sada se može nacrtati i grafik rešenja pomoću komande plot.
plot(x,y),xlabel('x'),ylabel('y'),grid on
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
16/27
Funkcija dsolve
1. ZADATAK
Napisati skriptu za rešavanje diferencijalne jednačine:
1 + 𝑥2
𝑦′
= 𝑥(2 ∙ 𝑦 + 1)
Da bi se formirala skripta potrebno je transformisati:
𝑦′ 𝐷𝑦
Diferencijalna jednačina sada postaje
1 + 𝑥2
𝐷𝑦 = 𝑥(2 ∙ 𝑦 + 1)
Uvode se simboličke promenljive: 𝑦 𝑥 𝑥
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
17/27
Funkcija dsolve
1. ZADATAK
Transformisati diferencijalnu jednačinu: 1 + 𝑥2
𝐷𝑦 = 𝑥(2 ∙ 𝑦 + 1)
𝐷𝑦 = 𝑥 ∙ (2 ∙ 𝑦 + 1)/ 1 + 𝑥2
Sada se formira jednačina
𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎 = 𝑑𝑖𝑓𝑓 𝑦 == 𝑥 ∙ (2 ∙ 𝑦 + 1)/ 1 + 𝑥2
Piše se kod za rešavanje diferencijalne jednačine:
𝑅𝑒𝑠 = 𝑑𝑠𝑜𝑙𝑣𝑒(𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎)
Dobije se rešenje: Res = (C1*(x^2 + 1))/2 - 1/2
Odnosno: 𝑦 =
𝐶1∙ 𝑥2+1
2
−
1
2
, gde je C1 konstanta
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
18/27
Funkcija dsolve
1. ZADATAK
Napisati skriptu za rešavanje diferencijalne jednačine:
𝑥 ∙ 𝑦 ′ −
𝑦
𝑥 + 1
= 𝑥, ako je 𝑦 1 = −1
Da bi se formirala skripta potrebno je transformisati:
𝑦′
 𝐷𝑦
Diferencijalna jednačina sada postaje
𝑥 ∙ 𝑦 ′ −
𝑦
𝑥 + 1
= 𝑥
Uvode se simboličke promenljive: 𝑦 𝑥 𝑥
Nacrtati grafik rešenja na intervalu [-1 15]
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
19/27
Funkcija dsolve
1. ZADATAK
Transformisati diferencijalnu jednačinu: 𝑥 ∙ 𝐷𝑦 −
𝑦
𝑥+1
= 𝑥
𝐷𝑦 = 1 +
𝑦
𝑥 ∙ 𝑥 + 1
Sada se formira jednačina
𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎 = 𝑑𝑖𝑓𝑓 𝑦 == 1 +
𝑦
𝑥 ∗ 𝑥 + 1
Sada se postavlja početni uslov dat zadatkom: 𝑦 1 = −1:
𝑢𝑠𝑙𝑜𝑣 = [𝑦 1 == −1]
Piše se kod za rešavanje diferencijalne jednačine:
𝑅𝑒𝑠 = 𝑑𝑠𝑜𝑙𝑣𝑒(𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎, 𝑢𝑠𝑙𝑜𝑣)
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
20/27
Funkcija dsolve
1. ZADATAK
Skripta 1.clc; clear;
2.syms x y(x)
3.jednacina=diff(y)==1+y/(x*(x+1));
4.uslov=[y(1)==-1];
5.Res=dsolve(jednacina,uslov)
Postavljanje diferencijalne
jednačine
Postavljanje početnog
uslova
Rešavanje diferencijalne
jednačine
Res =
(x*(x + log(x)))/(x + 1) - (3*x)/(x + 1)
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
21/27
Funkcija dsolve
1. ZADATAK
Skripta
6.f = matlabFunction(Res)
7.pretty(Res)
8.fplot(Res,[-1 15],'b*-')
9.hold on
10.ylim([-2 12])
Konvertovanje rešenja diferencijalne jednačine
u simboličku funkciju
Dobije se:
@(x)(x.*-3.0)./(x+1.0)+(x.*(x+log(x)))./(x+1.0)
Za prilagodjeni prikaz:
x (x + log(x)) 3 x
-------------- - -----
x + 1 x + 1
Formiranje grafika rešenja diferencijalne
jednačine na intervalu x1 = -1 do x2 = 15
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
22/27
Funkcija dsolve
1. ZADATAK
Skripta
11.xlim([-1 15])
12.plot([0 0], ylim, 'Color','r','LineWidth',1)
13.plot(xlim,[0 0], 'Color','r','LineWidth',1)
14.grid on
15.xlabel('x')
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
23/27
Funkcija dsolve
1. ZADATAK
Skripta
16.ylabel('y')
17.title(func2str(f))
18.hold off
Pretvaranje funkcije u string
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
24/27
Funkcija dsolve
2. ZADATAK
Napisati skriptu za rešavanje diferencijalne jednačine:
2 ∙ 𝑥2
∙
𝑑2𝑦
𝑑𝑥2
+ 3 ∙ 𝑥 ∙
𝑑𝑦
𝑑𝑥
; , ako je 𝑦 1 = −1
Da bi se formirala skripta potrebno je transformisati:
𝑑2𝑦
𝑑𝑥2
 𝑑𝑖𝑓𝑓(𝑦, 𝑥, 2)
𝑑𝑦
𝑑𝑥
 𝑑𝑖𝑓𝑓(𝑦, 𝑥)
Uvode se simboličke promenljive: 𝑦 𝑥 𝑥
Nacrtati grafik rešenja na intervalu [-5 5]
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
25/27
Funkcija dsolve
2. ZADATAK
Data diferencijalna jednačina sada postaje:
jednacina=diff(y)==1+y/(x*(x+1));
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
26/27
Funkcija dsolve
2. ZADATAK
Napisana skripta:
1. clc; clear;
2. syms x y(x)
3. jednacina=2*x^2*diff(y,x,2)+3*x*diff(y,x)-y == 0;
4. uslov=[y(1)==0 y(2)==2];
5. Res=dsolve(jednacina,uslov)
6. f = matlabFunction(Res)
7. pretty(Res)
8. fplot(Res,[-15 15],'b*-')
9. hold on
10.ylim([-5 15])
11.xlim([-1 15])
12.plot([0 0], ylim, 'Color','r','LineWidth',1)
13.plot(xlim,[0 0], 'Color','r','LineWidth',1)
14.grid on
15.xlabel('x')
16.ylabel('y')
17.title(func2str(f))
18.hold off
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
27/27
Funkcija dsolve
2. ZADATAK
Grafik koji se dobija
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
28/27
Funkcija dsolve
3. ZADATAK
Rešiti sistem diferencijalnih jednačina:
𝑥′ = 3 ∙ 𝑥2 +
4
𝑦
𝑦′ = −4 ∙ 𝑥 + 3 ∙ 𝑦2
𝑥′ = 3 ∙ 𝑥2 +
4
𝑦
 jed1=diff(x)==3*x+4*y;
𝑦′
= −4 ∙ 𝑥 + 3 ∙ 𝑦2
 jed2=diff(y)==-4*x+3*y;
Uvode se simboličke promenljive: 𝑥 𝑡 𝑦(𝑡)
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
29/27
Funkcija dsolve
3. ZADATAK
Napisana skripta:
1. clc; clear;
2. syms x(t) y(t)
3. jed1=diff(x)==3*x+4*y;
4. jed2=diff(y)==-4*x+3*y;
5. u1=x(0)==0;
6. u2=y(0)==1;
7. uslov=[u1; u2];
8. jednacine=[jed1; jed2]
9. Res=dsolve(jednacine,uslov)
10.xRes=Res.x;
11.yRes=Res.y;
12.fplot(xRes,'bo-')
13.hold on
14.fplot(yRes,'r*-')
15.grid on
16.legend('X','Y','Location','best')
INŽENJERSKO PROGRAMIRANJE.
Rešavanje diferencijalnih jednačina
30/27
Funkcija dsolve
3. ZADATAK
Grafik koji se dobija

Más contenido relacionado

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Rešavanje diferencijalnih jednačina_dsolve.ppsx

  • 1. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 1/27 Vrlo mali broj diferencijalnih jednačina se može rešiti analitički. Pomoću numeričkih metoda može se naći rešenje gotovo svake diferencijalne jednačine. MATLAB ima obimnu biblioteku funkcija za rešavanje diferencijalnih jednačina. Obična diferencijalna jednačina (ODJ, eng. ordinary differential equation, ODE) sadrži nezavisnu promenljivu, zavisnu promenljivu i izvode zavisne promenljive. 𝑑𝑦 𝑑𝑥 = 𝑓(𝑥, 𝑦) gde je 𝑥 nezavisna promenljiva, a 𝑦 je zavisna promenljiva.
  • 2. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 2/27 𝑑𝑦 𝑑𝑥 = 𝑓(𝑥, 𝑦) Rešenje je funkcija 𝑦 = 𝑓(𝑥), koja ispunjava uslove jednačine. Pošto više funkcija može ispunjavati uslove date ODJ, za rešavanje zadatka potrebni su dodatni podaci. Dodatni podaci su vrednost funkcije (zavisne promenljive) za određenu vrednost nezavisne promenljive.
  • 3. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 3/27 Metode za rešavanje ODJ: dsolve ode45 , pogodna za jednostavne zadatke. Zasniva se na metodi Runge-Kuta ode23 , pogodna za jednostavne zadatke. Često brža ali manje tačna od ode45 ode113 , pogodna za jednostavne zadatke. Radi u više koraka. ode15s , pogodna za teže zadatke. Koristi se kada ode45 ne uspeva. ode23s , pogodna za teže zadatke. Koristi se kada ode15s ne uspeva. ode23t , pogodna za umereno teške zadatke. ode23tb , pogodna za teže zadatke. Često je efikasnija od ode15s.
  • 4. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 4/27 dsolve(dif_jednačina) , dsolve(dif_jednačina,c1) dsolve(dif_jednačina1, dif_jednačina2, c1, c2) Funkcija dsolve
  • 5. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 5/27 Funkcija dsolve Primer Rešiti diferencijalnu jednačinu 𝑦′ 𝑡 − 𝑦 𝑡 = sin(𝑡) A) Bez početnog uslova B) Početni uslov: 𝑥 = 0, 𝑦 = 1; 𝑦 0 = 1
  • 6. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 6/27 Funkcija dsolve Primer Rešiti diferencijalnu jednačinu 𝑦′ 𝑡 − 𝑦 𝑡 = sin(𝑡) A) Bez početnog uslova 𝑦′ 𝑡 se transformiše u 𝑦 𝑡 se transformiše u
  • 7. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 7/27 Funkcija dsolve Primer Rešiti diferencijalnu jednačinu 𝑦′ 𝑡 − 𝑦 𝑡 = sin(𝑡) B) Početni uslov: 𝑥 = 0, 𝑦 = 1; 𝑦 0 = 1
  • 8. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 8/27 Funkcija dsolve Primer Rešiti sistem diferencijalnih jednačina: 𝑓′ 𝑡 − 𝑓 𝑡 − g 𝑡 = 0; 𝑔′ 𝑡 − 𝑓 𝑡 − g 𝑡 = 0; Uz date početne uslove: 𝑡 = 0, 𝑓 = 1; 𝑓 0 = 1 𝑖 𝑡 = 0, 𝑔 = 2; 𝑔 0 = 2
  • 9. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 9/27 Funkcija dsolve Primer Rešiti sistem diferencijalnih jednačina: 𝑓′ 𝑡 − 𝑓 𝑡 − g 𝑡 = 0; 𝑔′ 𝑡 − 𝑓 𝑡 − g 𝑡 = 0;
  • 10. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 10/27 Funkcija dsolve Primer Rešiti sistem diferencijalnih jednačina: 𝑓′ 𝑡 − 𝑓 𝑡 − g 𝑡 = 0; 𝑔′ 𝑡 − 𝑓 𝑡 − g 𝑡 = 0;
  • 11. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 11/27 Funkcija odenn Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn 1. korak Napiše se funkcijska datoteka (skripta pod nazivom ODJ1.m) koja izračunava 𝑑𝑦 𝑑𝑥 , za date vrednosti 𝑥 i 𝑦. Primer: 𝑑𝑦 𝑑𝑥 = 𝑥3 − 2 ∙ 𝑦 𝑥 , 1 ≤ 𝑥 ≤ 3; 𝑧𝑎 𝑥 = 1, 𝑦 = 4.2 function dydx=ODJ1(x,y) dydx=(x^3-2*y)/x;
  • 12. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 12/27 Funkcija odenn Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn 2. Korak. Rešava se zadatak: [x,y] = imefunkcije('imedat',xopseg,y0) Gde su imefunkcije – ime numeričke metode koja se koristi (npr. ode45, ode23, itd.) imedat – ime funkcijske datoteke koja izračunava 𝑑𝑦 𝑑𝑥 za date vrednosti x i y xopseg – vektor koji zadaje interval rešenja. y0 – početna vrednost y (vrednost y u početnoj tački intervala). [x,y] – Rešenje ODJ. x i y su vektori. Broj tačaka i razmak između početne i završne tačke zavise od ulaznog vektora xopseg.
  • 13. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 13/27 Funkcija odenn Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn 𝑑𝑦 𝑑𝑥 = 𝑥3 − 2 ∙ 𝑦 𝑥 , 1 ≤ 𝑥 ≤ 3; 𝑧𝑎 𝑥 = 1, 𝑦 = 4.2 function dydx=ODJ1(x,y) – ovo je napisana skripta ODJ1.m dydx=(x^3-2*y)/x; [x,y] = imefunkcije('imedat',xopseg,y0) [x,y]=ode45('ODJ1',[1:0.2:3],4.2)
  • 14. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 14/27 Funkcija odenn Postupak pri rešavanju diferencijalnih jednačina funkcijama klase odenn 𝑑𝑦 𝑑𝑥 = 𝑥3 − 2 ∙ 𝑦 𝑥 , 1 ≤ 𝑥 ≤ 3; 𝑧𝑎 𝑥 = 1, 𝑦 = 4.2 function dydx=ODJpr1(x,y) dydx=(x^3-2*y)/x; [x,y] = imefunkcije('imedat',xopseg,y0) [x,y]=ode45('ODJpr1',[1:0.2:3],4.2)
  • 15. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 15/27 Funkcija odenn Sada se može nacrtati i grafik rešenja pomoću komande plot. plot(x,y),xlabel('x'),ylabel('y'),grid on
  • 16. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 16/27 Funkcija dsolve 1. ZADATAK Napisati skriptu za rešavanje diferencijalne jednačine: 1 + 𝑥2 𝑦′ = 𝑥(2 ∙ 𝑦 + 1) Da bi se formirala skripta potrebno je transformisati: 𝑦′ 𝐷𝑦 Diferencijalna jednačina sada postaje 1 + 𝑥2 𝐷𝑦 = 𝑥(2 ∙ 𝑦 + 1) Uvode se simboličke promenljive: 𝑦 𝑥 𝑥
  • 17. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 17/27 Funkcija dsolve 1. ZADATAK Transformisati diferencijalnu jednačinu: 1 + 𝑥2 𝐷𝑦 = 𝑥(2 ∙ 𝑦 + 1) 𝐷𝑦 = 𝑥 ∙ (2 ∙ 𝑦 + 1)/ 1 + 𝑥2 Sada se formira jednačina 𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎 = 𝑑𝑖𝑓𝑓 𝑦 == 𝑥 ∙ (2 ∙ 𝑦 + 1)/ 1 + 𝑥2 Piše se kod za rešavanje diferencijalne jednačine: 𝑅𝑒𝑠 = 𝑑𝑠𝑜𝑙𝑣𝑒(𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎) Dobije se rešenje: Res = (C1*(x^2 + 1))/2 - 1/2 Odnosno: 𝑦 = 𝐶1∙ 𝑥2+1 2 − 1 2 , gde je C1 konstanta
  • 18. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 18/27 Funkcija dsolve 1. ZADATAK Napisati skriptu za rešavanje diferencijalne jednačine: 𝑥 ∙ 𝑦 ′ − 𝑦 𝑥 + 1 = 𝑥, ako je 𝑦 1 = −1 Da bi se formirala skripta potrebno je transformisati: 𝑦′  𝐷𝑦 Diferencijalna jednačina sada postaje 𝑥 ∙ 𝑦 ′ − 𝑦 𝑥 + 1 = 𝑥 Uvode se simboličke promenljive: 𝑦 𝑥 𝑥 Nacrtati grafik rešenja na intervalu [-1 15]
  • 19. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 19/27 Funkcija dsolve 1. ZADATAK Transformisati diferencijalnu jednačinu: 𝑥 ∙ 𝐷𝑦 − 𝑦 𝑥+1 = 𝑥 𝐷𝑦 = 1 + 𝑦 𝑥 ∙ 𝑥 + 1 Sada se formira jednačina 𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎 = 𝑑𝑖𝑓𝑓 𝑦 == 1 + 𝑦 𝑥 ∗ 𝑥 + 1 Sada se postavlja početni uslov dat zadatkom: 𝑦 1 = −1: 𝑢𝑠𝑙𝑜𝑣 = [𝑦 1 == −1] Piše se kod za rešavanje diferencijalne jednačine: 𝑅𝑒𝑠 = 𝑑𝑠𝑜𝑙𝑣𝑒(𝑗𝑒𝑑𝑛𝑎𝑐𝑖𝑛𝑎, 𝑢𝑠𝑙𝑜𝑣)
  • 20. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 20/27 Funkcija dsolve 1. ZADATAK Skripta 1.clc; clear; 2.syms x y(x) 3.jednacina=diff(y)==1+y/(x*(x+1)); 4.uslov=[y(1)==-1]; 5.Res=dsolve(jednacina,uslov) Postavljanje diferencijalne jednačine Postavljanje početnog uslova Rešavanje diferencijalne jednačine Res = (x*(x + log(x)))/(x + 1) - (3*x)/(x + 1)
  • 21. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 21/27 Funkcija dsolve 1. ZADATAK Skripta 6.f = matlabFunction(Res) 7.pretty(Res) 8.fplot(Res,[-1 15],'b*-') 9.hold on 10.ylim([-2 12]) Konvertovanje rešenja diferencijalne jednačine u simboličku funkciju Dobije se: @(x)(x.*-3.0)./(x+1.0)+(x.*(x+log(x)))./(x+1.0) Za prilagodjeni prikaz: x (x + log(x)) 3 x -------------- - ----- x + 1 x + 1 Formiranje grafika rešenja diferencijalne jednačine na intervalu x1 = -1 do x2 = 15
  • 22. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 22/27 Funkcija dsolve 1. ZADATAK Skripta 11.xlim([-1 15]) 12.plot([0 0], ylim, 'Color','r','LineWidth',1) 13.plot(xlim,[0 0], 'Color','r','LineWidth',1) 14.grid on 15.xlabel('x')
  • 23. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 23/27 Funkcija dsolve 1. ZADATAK Skripta 16.ylabel('y') 17.title(func2str(f)) 18.hold off Pretvaranje funkcije u string
  • 24. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 24/27 Funkcija dsolve 2. ZADATAK Napisati skriptu za rešavanje diferencijalne jednačine: 2 ∙ 𝑥2 ∙ 𝑑2𝑦 𝑑𝑥2 + 3 ∙ 𝑥 ∙ 𝑑𝑦 𝑑𝑥 ; , ako je 𝑦 1 = −1 Da bi se formirala skripta potrebno je transformisati: 𝑑2𝑦 𝑑𝑥2  𝑑𝑖𝑓𝑓(𝑦, 𝑥, 2) 𝑑𝑦 𝑑𝑥  𝑑𝑖𝑓𝑓(𝑦, 𝑥) Uvode se simboličke promenljive: 𝑦 𝑥 𝑥 Nacrtati grafik rešenja na intervalu [-5 5]
  • 25. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 25/27 Funkcija dsolve 2. ZADATAK Data diferencijalna jednačina sada postaje: jednacina=diff(y)==1+y/(x*(x+1));
  • 26. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 26/27 Funkcija dsolve 2. ZADATAK Napisana skripta: 1. clc; clear; 2. syms x y(x) 3. jednacina=2*x^2*diff(y,x,2)+3*x*diff(y,x)-y == 0; 4. uslov=[y(1)==0 y(2)==2]; 5. Res=dsolve(jednacina,uslov) 6. f = matlabFunction(Res) 7. pretty(Res) 8. fplot(Res,[-15 15],'b*-') 9. hold on 10.ylim([-5 15]) 11.xlim([-1 15]) 12.plot([0 0], ylim, 'Color','r','LineWidth',1) 13.plot(xlim,[0 0], 'Color','r','LineWidth',1) 14.grid on 15.xlabel('x') 16.ylabel('y') 17.title(func2str(f)) 18.hold off
  • 27. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 27/27 Funkcija dsolve 2. ZADATAK Grafik koji se dobija
  • 28. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 28/27 Funkcija dsolve 3. ZADATAK Rešiti sistem diferencijalnih jednačina: 𝑥′ = 3 ∙ 𝑥2 + 4 𝑦 𝑦′ = −4 ∙ 𝑥 + 3 ∙ 𝑦2 𝑥′ = 3 ∙ 𝑥2 + 4 𝑦  jed1=diff(x)==3*x+4*y; 𝑦′ = −4 ∙ 𝑥 + 3 ∙ 𝑦2  jed2=diff(y)==-4*x+3*y; Uvode se simboličke promenljive: 𝑥 𝑡 𝑦(𝑡)
  • 29. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 29/27 Funkcija dsolve 3. ZADATAK Napisana skripta: 1. clc; clear; 2. syms x(t) y(t) 3. jed1=diff(x)==3*x+4*y; 4. jed2=diff(y)==-4*x+3*y; 5. u1=x(0)==0; 6. u2=y(0)==1; 7. uslov=[u1; u2]; 8. jednacine=[jed1; jed2] 9. Res=dsolve(jednacine,uslov) 10.xRes=Res.x; 11.yRes=Res.y; 12.fplot(xRes,'bo-') 13.hold on 14.fplot(yRes,'r*-') 15.grid on 16.legend('X','Y','Location','best')
  • 30. INŽENJERSKO PROGRAMIRANJE. Rešavanje diferencijalnih jednačina 30/27 Funkcija dsolve 3. ZADATAK Grafik koji se dobija