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 10. 05. 2008 14:50

d.lord
Příspěvky: 42
Reputace:   
 

Příklad v Matlabu

Ahoj potreboval bych udelat m.file s timhle obsahem:
úkolem je "metodou náhodné střelby" (střílíme cca 100x) hledat
náhodné body, pokud bude hodnota v nově vyhledaném bodě "menší" než
předchozí minimum, označíme bod novým minimem a tak postupujeme dál
tyto body vybíráme z definičního oboru x=(-Pi/2 .. Pi/2), y=(-Pi/2 .. Pi/2)
Fce zadaná na tomto definičním oboru je f(x,y) =$ \frac{cos(x^2 + y^2) }{x^2 + y^2 }$
dále pro tento příklad obrázek funkce včetně vygenerovaných bodů tou metodou střelby.

za pomoc, navod nebo pripadne propracovani budu velice vdecny
diky za pomoc predem

Offline

 

#2 10. 05. 2008 16:34

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: Příklad v Matlabu

tak nahodny generator na cisla z intervalu $\langle -\frac{\pi}{2}, \frac{\pi}{2} \rangle$ muze vypadat jako

Code:

nahodne = @() pi*rand(1) - pi/2;

bude asi rozumne udelat si i funkci na tu funkci dvou promennych, treba jako

Code:

fce = @(x, y) cos(x^2 + y^2)/(x^2 + y^2);

pak bude treba v cyklu opakovat to, ze nahodne vygenerujeme bod pomoci generatoru nahodne(), spocitame pro tento bod funkcni hodnotu pomoci fce() a budeme ji porovnavat s nejakym minimem.

ok? nebo se mam vice rozepsat?

Offline

 

#3 10. 05. 2008 16:49

d.lord
Příspěvky: 42
Reputace:   
 

Re: Příklad v Matlabu

mno jestli muzes jeste trosku rozepsat bylo by to ok

Offline

 

#4 10. 05. 2008 18:46 — Editoval plisna (10. 05. 2008 18:47)

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: Příklad v Matlabu

Code:

function [  ] = dlord(  )

clc;
format long;

nejlepsiBod = generujBod;
min = dosadBodAVypoctiHodnotu(nejlepsiBod);

for i=1:1000
    bod = generujBod();
    hodnota = dosadBodAVypoctiHodnotu(bod);
    if hodnota < min
        min = hodnota;
        nejlepsiBod = bod;
    end   
end

disp(nejlepsiBod);
disp(min);

function [ bod ] = generujBod
  bod(1) = nahodne;
  bod(2) = nahodne;

function [ hodnota ] = dosadBodAVypoctiHodnotu(bod)
  hodnota = fce(bod);

function [ nahodneCislo ] = nahodne
  generator = @() pi*rand(1) - pi/2;
  nahodneCislo = generator();

function [ hodnota ] = fce(bod)
  vypoctiHodnotu = @(x, y) cos(x^2 + y^2)/(x^2 + y^2);      
  hodnota = vypoctiHodnotu(bod(1), bod(2));

rozhodl jsem se, ze to vyrobim cele a dam to sem, aby jsi se na to mohl kouknout. pokud mas dotazy, tak se klidne ptej.

Offline

 

#5 10. 05. 2008 18:49

d.lord
Příspěvky: 42
Reputace:   
 

Re: Příklad v Matlabu

Je to perfekni a vystizny!!!! dekuji moc
jeste me zajima co znamenaji tyhle 2 radky:
clc;
format long;
Diky moc

Offline

 

#6 10. 05. 2008 19:59

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: Příklad v Matlabu

clc = clear, tj. smaze obsah command window
format long = prepne na zobrazeni s vyssi presnosti

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson