MATLAB - pomoc s rjesavanjem ne-linearnih sustava
(1 korsinik/a gleda/ju temu) (1) Gost

MATLAB - pomoc s rjesavanjem ne-linearnih sustava


07.06.2016 | 11:30
Dobar dan,

Trebam rijesiti sljedeci sustav no dobivam gresku da je funkcija lose definirana. Ako korisim
solve
predugo se vrti, a ako koristim
vpasolve 
javlja gresku da symoblic parameters are not allowed in non-poly equation. Pokusala sam na ovaj nacin, pretpostavljam da je problem sto matlabFunction to pretvori u function handles, a ne u funkciju.

Nadalje, ideje poput kopiraj vrijednosti nije rjesenje jer je ovo primjer jednog od zadataka i koeficijenti su kobasice po 3-4 stranice u wordu. Nadalje, postoji li u MATLABU nacin da se syms prebaci u funkciju ili bih morala napisati skriptu koja ce to spremiti u neki .txt file i ako onda to ucitam hoce li to biti funkcija, a ne syms? Nesto tipa automatski c/p.
function eq = ts_7(A,B,C,D,E)
syms x 
% dbstop if error
g = D * sin(C * atan( B*x - E * (B*x - atan(B*x)))) + A; % formula
eq5 = taylor(g, x, 'Order',1, 'ExpansionPoint',7) - 2*(x-7);
eq1 = taylor(g, x, 'Order',2, 'ExpansionPoint',7) - eq5 + 2.4*(x-7)^2;
eq2 = taylor(g, x, 'Order',3, 'ExpansionPoint',7) - eq1 + (x-7)^3;
eq3 = taylor(g, x, 'Order',4, 'ExpansionPoint',7) - eq2 - 8*(x-7)^4;
eq4 = taylor(g, x, 'Order',5, 'ExpansionPoint',7) - eq3;
eq = matlabFunction(eq1, eq2, eq3, eq4, eq5) % eq = matlabFunction([eq1; eq2; eq3; eq4; eq5]);
end


Funckiju zovem na sljedeci nacin:
opts = optimoptions('fsolve','InitDamping',0.005,'Algorithm','levenberg-marquardt'); 
init = [-1.3, 1.4, 4000, 0.12, 9]; % starting points 
tic
coeff = fsolve(@(x)ts_7(x(1), x(2), x(3), x(4), x(5)), init, opts);
toc


Undefined function or variable "fuser".
Error in fsolve (line 257)
if ~isempty( isoptimargdbl('FSOLVE', {'F','J'}, fuser, JAC) )
Error in script_7 (line 11)
coeff = fsolve(@(x)ts_7(x(1), x(2), x(3), x(4), x(5)), init,opts);
Error in run (line 96)
evalin('caller', [script ';']);


Trazim koeficijente $A, B, C, D, E$. Sto se tice vrijednosti za $x$, to je vektor 341x1 cije vrijednosti imam no mislim da mi to nije bitno i da ako stavim $x-7 = 1$, da se sustav moze rijesiti jer cu imati 5 nepoznanica i 5 jednadzbi.
Trazila sam pomoc na matlabovom forumu no njihove preinake i dalje daju istu gresku.


EDIT: dodano novo pitanje dolje u raspravi
07.06.2016 | 12:24
Nisam Matlab koristio više od 10 godina i upravo me iznenadilo koliko sam ga zaboravio jer mi pola ovog što si napisala zvuči kao kineski - nešto vrlo malo razumijem (zapravo - razabirem), a ostatak mi je samo "šum"...
Uglavnom, ne znam ti pomoći, žao mi je...
08.06.2016 | 10:48


Objasniti cu malo problem, mozda netko zna MATLAB.

Imam vrijednosti za x i zelim naci koeficijente funkcije g t.d. g aproksimira x podatke.

A, B, C, D, E
g(x) = D * sin(C * atan( B*x - E * (B*x - atan(B*x)))) + A;


Prvi pristup je bio pomocu optimizacijskih algoritama i dobila sam dobre parametre koje vise manje fittaju x vrijednosti.

Htjela sam naci drugi nacin kako bi mogla rjesiti (matematicki mi je dosta jasno, ali je malo problem s kodiranjem) pa je ideja sljedeca:

Funkcija se moze razviti u Taylorov i Fourierov red no ajmo raditi na primjeru Taylora jer je princip isti za Fouriera.


Nadem Taylorov red T(x) za g(x) koji izgleda kao T(x) = ()x^7 + ()x^5 + ()x^3 + ()x + ABCD.
U () su nelinearne kombinacije A, B, C, D i E.
Npr. ovo sam dobila za jedan drugi primjer

f(1) =      B*C*D; %.* xdata; % x^1

f(2) =     -D*(C*((B^3*E)/3 + B^3/3) + (B^3*C^3)/6);   %* xdata.^3; % x^3

f(3) =      (D*(C*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)) + (B^2*C^3*((B^3*E)/3 + B^3/3))/6 + B*C*((B^4*C^4)/120 + (B*C^2*((B^3*E)/3 + B^3/3))/3)) + 0.2839); %* xdata.^5; % x^5

f(4) = 	   -D*(C*(B*((2*B^6*E)/15 + ((4*B^7*E^2)/9 + (8*B^7*E)/5)/(12*B) + B^2*((2*B^4*E)/15 + B^4/7)) + (22*B^7*E)/105 + (B^3*E*((2*B^4*E)/9 + B^4/5))/3) +...
 			C*((B^3*E)/3 + B^3/3)*((B^4*C^4)/120 + (B*C^2*((B^3*E)/3 + B^3/3))/3) + (B^2*C^3*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)))/6 + B*C*((B^3*C^4*((B^3*E)/3 + ...
 			B^3/3))/60 + B^2*C^2*((B^4*C^4)/5040 + (B*C^2*((B^3*E)/3 + B^3/3))/60) + (4*B*C^3*((B^3*E)/3 + B^3/3)^2 + 8*B^2*C^3*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)))/(24*B*C)));  % * xdata.^7; % x^7
        
f(5) =	   D*(C*((10*B^9*E)/63 + B*(((4*B^9*E^2)/5 + (12*B^9*E)/7)/(18*B) + B^2*((2*B^6*E)/21 + ((4*B^7*E^2)/9 + (8*B^7*E)/5)/(20*B) + B^2*((2*B^4*E)/21 + B^4/9)) + (B*((4*B^7*E^2)/9 + (8*B^7*E)/5))/20 +... 
		   (2*B^4*E*((2*B^4*E)/15 + B^4/7))/3) + (B^3*E*((2*B^6*E)/15 + ((4*B^7*E^2)/9 + (8*B^7*E)/5)/(12*B) + B^2*((2*B^4*E)/15 + B^4/7)))/3 + (B^5*E*((2*B^4*E)/9 + B^4/5))/5) + B*C*((B*C*(4*B*C^3*((B^3*E)/3 + ...
		    B^3/3)^2 + 8*B^2*C^3*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5))))/480 + (12*B^2*C^3*(B*((2*B^6*E)/15 + ((4*B^7*E^2)/9 + (8*B^7*E)/5)/(12*B) + B^2*((2*B^4*E)/15 + B^4/7)) + (22*B^7*E)/105 + (B^3*E*((2*B^4*E)/9 + B^4/5))/3) + ...
			12*B*C^3*((B^3*E)/3 + B^3/3)*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)))/(36*B*C) + B^2*C^2*((B^3*C^4*((B^3*E)/3 + B^3/3))/2520 + B^2*C^2*((B^4*C^4)/362880 + (B*C^2*((B^3*E)/3 + B^3/3))/2520) + (4*B*C^3*((B^3*E)/3 + B^3/3)^2 + ... 
			8*B^2*C^3*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)))/(480*B*C)) + 2*B*C^2*((B^3*E)/3 + B^3/3)*((B^4*C^4)/5040 + (B*C^2*((B^3*E)/3 + B^3/3))/60)) + C*((B^3*E)/3 + B^3/3)*((B^3*C^4*((B^3*E)/3 + B^3/3))/60 + ...
			B^2*C^2*((B^4*C^4)/5040 + (B*C^2*((B^3*E)/3 + B^3/3))/60) + (4*B*C^3*((B^3*E)/3 + B^3/3)^2 + 8*B^2*C^3*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)))/(24*B*C)) + (B^2*C^3*(B*((2*B^6*E)/15 + ((4*B^7*E^2)/9 + (8*B^7*E)/5)/(12*B) + ...
			B^2*((2*B^4*E)/15 + B^4/7)) + (22*B^7*E)/105 + (B^3*E*((2*B^4*E)/9 + B^4/5))/3))/6 + C*((B^4*C^4)/120 + (B*C^2*((B^3*E)/3 + B^3/3))/3)*((14*B^5*E)/45 + B*((2*B^4*E)/9 + B^4/5)));  %* xdata.^9; % x^9

f(6) =      A;
.

Nadalje, podatke x aproksimiram s polinomom p(x) = ax^7 + bx^5 + cx^3 + dx + e.

I onda nadem () tako da izjednacim T(x) s p(x) i rjesim sistem. Tu ima jos detalja (razviti Taylorov red oko neke druge tocke, itd) no ovo je najosnovnija ideja.
08.06.2016 | 16:59
Evo, majke mi, čitam po treći put i osjećam se tako glup...
U svakom slučaju, hvala ti. Vratila si me u dane mladosti, dok smo moja draga i ja još hodali. Ja sam studirao elektrotehniku, a ona matematiku i informatiku na PMFu. U svakom sam se društvu osjećao tako pametan, osim kad bi se skupile njene kolegice s faksa. Tu sam imao osjećaj da sam jedva malo bolji od uličnog kopača kanala. I to ne bagerista, nego onog s krampom.
08.06.2016 | 17:20
E onaj s krampom je pomoćni bagerista. On ide gdje bager ne ide.
09.06.2016 | 08:14
hehe @smayoo

Dakle sada idem rjesavati ogledni primjer s MATLAB-ove stranice i dalje mi baca ovu gresku. Evo screenshota, mozda sada netko skuzi di je problem jer ja u to gledam vec par dana i dalje ne vidim i vec mi postaje neugodno od moje bedastoce.
Prilozi:
09.06.2016 | 08:36
Mozda glupo ali umjesto tocke-zareza stavi ili dvotocku ili zarez.
Nekako mi se cini greska u interpunkciji
09.06.2016 | 09:08
Nije u tome greska.

Probala isti kod na MATLABu iz 2013. i sada radi. No za moju funkciju mi javlja novu gresku

Error using fsolve (line 257)
FSOLVE requires all values returned by user functions to be of data type double.


ali s obzirom kuzim sto greska znaci no nemam pojma kako to rjesiti, mozda ako imate vremena da bacite pogled.
09.06.2016 | 17:34
Znači, ona prva greška ti je da funkcija fsolve koristi na jednom mjestu identifier (ne znam je li to opet neka funkcija, ili varijabla, štoli...) fuser koji kod tebe nije definiran. Ne znam zašto nije, ali nije.

Druga greška znači da mu je neka od matrica ili vektora takva da ima makar jedan element koji je cjelobrojan, a njemu to, čini se, smeta. Pregledaj brojeve. Ako je neki zapisan kao cijeli broj (npr. 7), zapiši ga kao realni broj (7.0).
21.07.2016 | 20:51
Da na otvaram novu temu, dobila sam par pitanja, a htjela bih ovdje provjeriti svoje razmisljanje jer se ne sjecam bas ili se prije nisam susrela s time.


unknown.jpg

Actor moze biti par tipova - mall, user, itd.

1. pitanje: Napisi SQL query koji nalazi svaki review koji ja napisao mall.

SELECT
*
FROM actors
LEFT JOIN content_reviews ON
Actors.id=content_reviews.id
LEFT JOIN malls ON malls.id=actors.id

ILI mozda

SELECT review_content_id FROM tbl_content_reviews WHERE actors_id IN (SELECT id FROM tbl_malls)

2. pitanje: Recimo npr. da zelimo grupirati malls po njihovom ponasanju. Koju bi tehniku(e) koristila i zasto? Kako bi vizualizirala rezultat?

Ovo pitanje mi nije bas najjasnije no generalno jedini algoritam iz machine learninga za grupiranje koji znam je k-means clustering. Sto bi vi odgovorili i kako biste vizualizirali to?
21.07.2016 | 22:15
Slika mi je presitna, ne vidim ništa pročitati. Može to malo veće?
22.07.2016 | 09:34
Kada prodem misom po njoj, moze se uvecati. Ne znam jel to do browsera, ako ne ide stavim novu.
22.07.2016 | 11:29
Ta uvećana mi je presitna. Jbg, i ja sam nekad imao takav vid.
22.07.2016 | 13:00
postimg.org/image/9c1zz84fr/

Probati ju povecati. Ako ne ide, bum prepisala tablice pa posaljem onda
22.07.2016 | 22:15
lucija kaže:
Actor moze biti par tipova - mall, user, itd.

1. pitanje: Napisi SQL query koji nalazi svaki review koji ja napisao mall.


Vjerujem da tebi to što si napisala zvuči savršeno jasno, ali nije. Više iz strukture sa slike, nego iz toga što si napisala, naslućujem što bi mogao biti zadatak. Zato uzmi u obzir mogućnost da sam posve pogrešno shvatio.

Dakle, naslućujem da treba naći sve reviewe koje je napisao bilo koji actor tipa mall. Ako je tako, onda nemoj krenuti od actors, nego od content_reviews. Ako koristiš left-join, onda ti relacija pokupi SVE zapise iz prve tablice u relaciji, a u poljima koji se odnose na drugu tablicu imaš podatke ako postoje povezani zapisi ili su ta polja prazna, ako ne postoje povezani zapisi. Dakle, moraš koristiti INNER JOIN ako želiš selekciju zapisa po tom kriteriju. Treće, u "sredini" veze mora biti tablica actors jer veza ide preko nje (takav ti je dijagram). Četvrto, relaciju ne uspostavljaš actors.id=content_reviews.id, to su dva različita primarna ključa, nego content_reviews.actor_id=actors.id, dakle između primarnog ključa i relacijskog ključa.

Simboli na dijagramu na slici mi nisu poznati pa opet naslućujem da su tablice nacrtane dolje u 1:1 relaciji s pivotnom tablicom (actors), a one nacrtane s desna su u 1:n. Ako je tako, onda su, opet pretpostavljam, podaci takvi da primarni ključ tih donjih tablica (npr. malls.id) jest jednak primarnom ključu pivotne tablice (actors.id). Ako je to sve tako, onda bi ja to napisao ovako:

SELECT
*
FROM tbl_content_reviews
INNER JOIN tbl_actors ON
tbl_content_reviews.actor_id=tbl_actors.id
INNER JOIN tbl_malls ON
tbl_actors.id=tbl_malls.id;

ILI mozda

SELECT review_content_id FROM tbl_content_reviews WHERE actors_id IN (SELECT id FROM tbl_malls)


Ovo bi isto radilo, samo sporije.

2. pitanje: Recimo npr. da zelimo grupirati malls po njihovom ponasanju. Koju bi tehniku(e) koristila i zasto? Kako bi vizualizirala rezultat?

Ovo pitanje mi nije bas najjasnije no generalno jedini algoritam iz machine learninga za grupiranje koji znam je k-means clustering. Sto bi vi odgovorili i kako biste vizualizirali to?


Što znači grupirati po "ponašanju"? Koji od podataka iz tablice određuje "ponašanje"? Zašto ti treba neki poseban algoritam? Imaš SQL komandu za grupiranje GROUP BY i HAVING.

Isto - što točno znači "vizualizirati"? Uobičajeni prikaz grupiranih podataka je da imaš zaglavlje grupe, u kojem su ispisani svi podaci koji se ponavljaju tu istu grupu, i onda ispod toga listu zapisa sa svim poljima koja su specifična za svaki pojedini zapis.
23.07.2016 | 15:29
@smayoo hvala puno na odgovoru!
sto se tice opisa, ja sam to dobila u mailu, samo sam prevela na engleski. Meni nije bilo jasno no mislila sam da mozda bedasta/neznanje pa sam pitala okolo i nikom nije bas jasno. Znam da je bolje uvijek pitati nego praviti se pametan no ovaj put sam htjela provjeriti s iskusnijima. Budem ih pitala za drugi zadatak pa pojasnim kad dobijem odgovor.
23.07.2016 | 16:47
Misliš - prevela *SA* engleskog? Daj da vidim originalni engleski tekst.
24.07.2016 | 19:07
I'll start with an example of a database schema we are working on. (it is not complete, and not all names are filled in, I just included it to demonstrate the intention),

In essence, there are several types of actors. An actor can be a mall, or a user, ..

Each actor can perform actions on content. So a review refers to a content, and the actor who wrote it.


Question 1:

Write an SQL query that fetches all reviews written by a mall.


Question 2:

Let's say we wanted to group malls by their behaviour. What technique(s) would you use and why? How would you visualize the result?
24.07.2016 | 20:21
Da. Nažalost nije baš puno jasnije...
25.07.2016 | 12:32
A mall is an actor. An actor can leave reviews and likes. Now let's say we want to find all competitors (or partners) of this mall. So we need to find malls that engage in similar activity on similar content.
25.07.2016 | 21:52
SELECT *
FROM tbl_malls
INNER JOIN tbl_actors ON
tbl_malls.id=tbl_actors.id
INNER JOIN tbl_content_(koju odabereš) ON
tbl_actors.id=tbl_content_(koju odabereš).actor_id
GROUP BY tbl_content_(koju odabereš).content_id

pa još možeš eventualno dodati

HAVING Count(tbl_actors.id)>1

u smislu da te zanimaju samo aktori kojih ima više od jedan u svojoj grupi. Na primjer.

Kako bi vizualizirala rezultat? Nemam pojma. Klasični strukturirani prikaz stablom?
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 2 dana, 1 sat
  • Borisone: Ma nije to, nego se sada početna stranica učita u tren oka. Treba bar 3-4 sekunde da bi bilo moderno.
  • Riba: Uostalom, nije Jabucnjak neresponsivan nego je vama ekran premalen! :-D
  • dpasaric: I nisi boomer, ti si gen X! :)
  • dpasaric: Zašto bi itko išao na ovaj tip weba s mobitela? :)
  • Riba: Hoce, vec je u pripremi godinama ali je implementacija malo zapela...plus sto ne pomaze sto ja boomer nikada ne idem na jabucnjak sa mobilnog uredjaja. :)
  • CoffeePod: Jabucnjak*
  • CoffeePod: Hoce li Jabuvnjak ikad dobit reponsive sajt?
  • cariblanco: Danas smo u Osijeku, možda shebali turističku sezonu :D
  • dpasaric: Slijedi uskoro osvrt na naslovnici...
  • Air: ...a Applevom slučaju iako te fore drugi telefoni imaju već godinama, ali kad to Apple napravi mi bi se trebali diviti tome kao toploj vodi.
  • Air: Meni Keynote izgleda kao kad Trum hvali samo sebe i svoje odluke kao ono baš najbolje, iako ga je cijeli Svijet popljuvao...
  • drlovric: Na Mac, Spotlight je odlican, kao i boja foldera (konacno) :)
  • drlovric: iPad je odlicno profitirao. Ako sve ovo ne zakljucaju za najnovije modele only :)
  • Riba: Keynote mi je kao neka epizoda Teletubbiesa.
  • Riba: Gledam taj WWDC i razmisljam kako su teme o umiranju mozda privlacnije. :-D
  • dpasaric: Idemo mi na ljepše teme, WWDC je za sat vremena! :)
  • dpasaric: Sve pet, ali nije li zanimljiva statsitika da je od zadnjih 30-ak (toliko pratimo na jednoj internoj grupi objave u medijima) sportaša, umjetnika i ostalih poznaith osoba koje su iznenada umrle, uzorak cijepljenih 100%. A znamo da je kod nas situacija bila cca 50:50, znači nešto lomi statistiku. Evo, samo to primjećujem.
  • smayoo: To što nije u javnosti poznato što je prethodilo njegovoj smrti, ne znači da nije prethodilo ništa čega bi ta smrt bila logičan i sasvim vjerojatan ishod. Moj pokojni stari je umro u 59. godini i svima koji ga nisu jako dobro znali je to bilo "iznenada". Nas koji smo mu bili bliski nije baš *iznenadilo*, iako nam je bilo teško i bolno.
  • Riba: Obrati paznju na nepoznate osobe poput mog oca koji ne uzima lijekove kako je propisano, odbija ici na kontrole, jedva je izvukao zivu glavu nakon srcanog udara pred par godina i jos hoda naokoo unatoc tome sto se cak i cijepio. Znanost bi se trebala na takve slucajeve usredotociti. :)
  • dpasaric: Samo primjećujem uzorak. Do sada je 100% kod domaćih i stranih poznatih osoba koje su iznenada umrle. Ponavljam, možda je zaista slučajnost, ali sada već postaje statistički zanimljivo.
  • Riba: Covjek je vjerojatno pocinio suicid ili izravno ili neizravno alkoholom, nije tu potrebna velika znanost.
  • dpasaric: Sjajan umjetnik je to bio. Velika šteta.:( I gle, opet moramo primjetiti slučajnost koja povezuje sve "prerano" umrle. :( Nadam se da će znanost potražiti uzroke takvoj statistici.
  • smayoo: RIP, Matija :(. Stvarno prerano.
  • dpasaric: Večeras u 19 sati po našem vremenu Appleov #WWDC25 keynote!
  • Maxxy: RIP Matija Dedić :(
  • smayoo: RIP :(
  • dpasaric: Umro Bill Atkinson! :(
  • drpongrac23: @Zdravac - Nemoj ići lijevo ako semafor je desno :) :)
  • Zdravac: hahahah
  • Zdravac: A da se, umjesto palac dolje/gore, uvede palac lijevo/desno?!
  • tino1: Gjuro, bola, Mazlum i to s veliko "M".
  • Gjuroo: Možda "mamlaz"?
  • tino1: Mazlum- na Herceg- Bolansanski- Budala.
  • Yonkis: Mazlum - Mazlum (maẓlūm) is an Arabic term for "oppressed, ill-treated, injured, sinned-against" (the antonym being ẓālim "oppressor"; root ẓlm "to oppress";).
  • tino1: Riba! Vraćaj karmu! Ej ne ćeš se imat kamo vratit.
  • tino1: Ej ukinuo Mazlum Karmu!! Šta vam je odmah vraćaj karmu Riba!!
  • smayoo: :(
  • drpongrac23: Napustio nas je Ivan Piko Stančić. RIP
  • Borisone: Logika kaže da bi verzija trebala biti od godine u kojoj se izdaje. Ima smisla godina plus jedan jer u posljednjih nekoliko godina obećanja dolaze s bar nekoliko mjeseci odmaka (ili nikad).
  • Yonkis: iOS 26 u 2025? [link]
  • cariblanco: Riječani, hoće li Važ biti vaš ?
  • smayoo: @Yonkis, piši u forum, ovo će ti tu iscuriti
  • Yonkis: Članak je odličan.. dijelim ga okolo ostalim Appleovcima koji nikako da ovdje puste korjenje. :)
  • hal9000: @dpasaric: ako nekome i nije korisno, barem je zabavno i poučno.
  • Yonkis: Ne znam dal da otvaram temu, treba mi prijedlog neke app za skeniranje prostorije (sa namještajem) kako bih mogao lakše namjestiti prostoriju sa postojećim stanjem, neka LiDAR app?
  • dpasaric: Članak je "up", imate što za čitati, nadam se da će nekome biti korisno! :)
  • cariblanco: ok,ty za info
  • dpasaric: Ograničen je taj modul za ankete, imao sam isti problem, ali on nakon par dana zaboravi IP, pa se mogao dati drugi glas za one koji su imali više Macova.
  • dpasaric: Hvala, idem urediti tekst za zadnjim info, pa ide objava večeras! :)
  • dpasaric: Evo, imamo 1.000!

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

cariblanco, Riba, rusty, tino1, Anonimci (407)

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 1.14 Seconds

Provided by iJoomla SEO