Korisnički Kontrolni Panel
Pogledajte svoj profil
Pogledajte svoje postove
ČPP
Prijavite se

Matematički forum na kojem možete da diskutujete o raznim matematičkim oblastima, pomognete drugima oko rešavanja zadataka, a i da dobijete pomoć kada vam zatreba


















Index stranica RAZNO MATEMATIČKI SOFTVER

[MATLAB] Nelinearne jednacine i optimizacija

[MATLAB] Nelinearne jednacine i optimizacija

Postod nkole » Utorak, 09. Oktobar 2018, 18:27

Ima par zadataka gde mi određeni delovi nisu jasni.

Zadatak 1
Grafički resiti jednacinu [inlmath]e^{-(x + 1) ^ 2 + \frac{\pi}{2}} \cdot sin(5 x + 2) = 0[/inlmath], a zatim i numerički.

Kôd: Obeleži sve
ezplot('exp(-(x + 1) ^ 2 + pi / 2) * sin(5 * x + 2)')
line([-3.5 1.5], [0, 0])

Prvi korak crtanje grafika funkcije, drugi crtanje prave koja prolazi kroz nulu jer izraz treba biti jednak nuli? Rešenje su vrednosti za [inlmath]x[/inlmath] gde se dva grafika seku?

graficko.PNG
graficko.PNG (11.55 KiB) Pogledano 66 puta

Kôd: Obeleži sve
f = @(x)exp(-(x + 1) .^ 2 + pi / 2) .* sin(5 * x + 2);
x = fsolve(f, 0) % x = 0.228318521787554

Drugi argument funkcije se neke početne vrednosti, kako se one određuju? Pod pretpostavkom da se grafički rešava tako što se gleda gde se grafici seku, što ovde ima samo jedno rešenje?

Zadatak 2
[dispmath]max \left[-x_1^2 - x_2\right]\\
9 \geq x_1^2 + x_2^2\\
x_1 + x_2 \leq 1[/dispmath]
Kôd: Obeleži sve
[x1, x2] = meshgrid(-3:.1:3);
z = -x1 .^ 2 - x2;
i = find(x1 .^ 2 + x2 .^ 2 > 9); z(i) = NaN;
i = find(x1 + x2 > 1); z(i) = NaN;
surf(x1, x2, z); shading interp

Prvo kaže da se na osnovu datih uslova može odrediti početni kvadratni region [inlmath][-3, 3][/inlmath], i odatle imamo meshgrid(-3:.1:3). Kako se to određuje? Na koji način sa datog grafika čitamo da su rešenja [inlmath]x_1 = 0, x_2 = -3[/inlmath], a da je maksimalna vrednost [inlmath]3[/inlmath]?

optimizacija1.PNG
optimizacija1.PNG (23.82 KiB) Pogledano 66 puta

Koliko vidim on pravi tu mrežu ili šta već i onda pronađe sve tačke koje ne zadovoljavaju date uslove, obriše ih i tako dobije na kraju dozvoljena rešenja. Ne razumem se u ove stvari, bitno mi je samo da znam da uradim zadatke.

Zadatak 3
[dispmath]min \left[x_1^3 + x_2^2 - 4x_1 + 4\right]\\
x_1 - x_2 + 2 \geq 0\\
-x_1^2 + x_2 - 1 \geq 0\\
x_1, x_2 \geq 0[/dispmath]
Kôd: Obeleži sve
[x1, x2] = meshgrid(0:0.02:1, 1:0.02:2);
z = x1 .^ 3 + x2 .^2 + 4 * x1 + 4;
ii = find(x1 - x2 + 2 < 0); z(ii) = NaN;
ii = find(-x1 .^ 2 + x2 - 1 < 0); z(ii)=NaN;
ii = find(x1 < 0); z(ii) = NaN;
ii = find(x2 < 0); z(ii) = NaN;
surf(x1, x2, z); shading interp

Ista pitanja. Čitamo da je [inlmath]x_1 = 0, x_2 = 1[/inlmath].

optimizacija2.PNG
optimizacija2.PNG (20.73 KiB) Pogledano 66 puta


Numerički se može rešiti ovako

Kôd: Obeleži sve
function [c, ce] = exc6f1(x)
    ce = [];
    c = [x(1)^2 - x(2) + 1];

Kôd: Obeleži sve
f = @(x) x(1) ^ 3 + x(2) ^ 2 + 4 * x(1) + 4;
A = [-1 1]; B = 2; Aeq = []; Beq = []; xm = [0;0];
x=fmincon(f, [0; 1], A, B, Aeq, Beq, xm, [], 'exc6f1')

Ovde opet imamo neku inicijalnu vrednost x0 = [0; 1]?
nkole  OFFLINE
 
Postovi: 12
Zahvalio se: 4 puta
Pohvaljen: 1 puta

Sharuj ovu temu na:

Share on Facebook Facebook Share on Twitter Twitter Share on MySpace MySpace Share on Google+ Google+

Re: [MATLAB] Nelinearne jednacine i optimizacija

Postod nkole » Sreda, 10. Oktobar 2018, 19:01

Snašao sam se nekako valjda. Evo ako nekog zanima.

Prvi korak crtanje grafika funkcije, drugi crtanje prave koja prolazi kroz nulu jer izraz treba biti jednak nuli? Rešenje su vrednosti za x gde se dva grafika seku?

Normalno da crtamo grafik date funkcije i gledamo gde preseca pravu [inlmath]y = 0[/inlmath] jer se traže nule funkcije, nije mi palo na pamet tad.

Drugi argument funkcije se neke početne vrednosti, kako se one određuju?

Treba nekako da se potrudimo da lupimo (pretpostavimo) neku vrednost što približniju rešenju problema i onda od te tačke MATLAB kreće da iterativno traži tačno rešenje problema. U datom primeru smo sa grafika videli da je otprilike jedna nula u [inlmath]x = 0[/inlmath], te smo zato tu vrednost naveli kao početnu pretpostavku. Vidimo da je još jedna nula otprilike u [inlmath]x = -1.5[/inlmath] i ako to navedemo kao početnu pretpostavku dobijamo rešenje [inlmath]x = -1.6566[/inlmath].

Pod pretpostavkom da se grafički rešava tako što se gleda gde se grafici seku, što ovde ima samo jedno rešenje?

MATLAB iterativno traži rešenje krenuvši od početne pretpostavke i staje kada naiđe na prvo rešenje problema. Za druge početne pretpostavke dobijamo druga rešenja.

Prvo kaže da se na osnovu datih uslova može odrediti početni kvadratni region [inlmath][−3,3][/inlmath], i odatle imamo meshgrid(-3:.1:3). Kako se to određuje?


1.PNG
1.PNG (17.95 KiB) Pogledano 45 puta

Trebamo uočiti pravougaonu oblast koja će sadržati ceo prostor rešenja. Sa grafika vidimo da će kvadrat [inlmath][-3, 3][/inlmath] biti dovoljan.

Što se drugog problema tiče:

[inlmath]x_1 - x_2 + 2 \geq 0\\
-x_1^2 + x_2 - 1 \geq 0\\
x_1, x_2 \geq 0\\
\text{---}\\
x_1 + 2 \geq x_2\\
x_1^2 + 1 \leq x_2\\
x_1, x_2 \geq 0\\
\text{---}\\
x_2 \leq x_1 + 2\\
x_2 \geq x_1^2 + 1\\
x_1, x_2 \geq 0\\[/inlmath]

2.PNG
2.PNG (20.54 KiB) Pogledano 45 puta

Ako uzmemo u obzir i [inlmath]x_1, x_2 \geq 0[/inlmath], vidimo da [inlmath]x_1[/inlmath] ide od 0 do 1 (ako zaokružimo ka nuli), a [inlmath]x_2[/inlmath] od 1 do 2.

Na koji način sa datog grafika čitamo da su rešenja [inlmath]x_1 = 0, x_2 = −3[/inlmath], a da je maksimalna vrednost [inlmath]3[/inlmath]?

Maksimalna vrednost je obojena u jarko žuto, a minimalna u tamno plavo. Zarotiramo li grafik u X-Y pogled lako možemo pročitati koordinate najsvetlije/najtamnije tačke, koje jesu traženo rešenje [inlmath](x_1, x_2)[/inlmath]. Vrednost funkcije možemo lako pročitati kada ubacimo u X-Z pogled.

Ovde opet imamo neku inicijalnu vrednost x0 = [0; 1]?

Na istu foru kao na početku, sa grafika vidimo da je rešenje tu negde oko (0, 1).
nkole  OFFLINE
 
Postovi: 12
Zahvalio se: 4 puta
Pohvaljen: 1 puta


Povratak na MATEMATIČKI SOFTVER

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 1 gost

cron

Index stranicaTimObriši sve kolačiće boarda
Danas je Sreda, 12. Decembar 2018, 04:44 • Sva vremena su u UTC + 1 sat
Pokreće ga phpBB® Forum Software © phpBB Group
Prevod – www.CyberCom.rs