Matlab: functie plotten

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Reageer
Berichten: 411

Matlab: functie plotten

Ik ben nog niet echt heel bedreven met Matlab en zou daar wat verandering in willen brengen. Ik heb het volgende probleem:

Gegeven is de differentiaalvergelijking y' = h(t-1) waarbij h(t) = 1 als t>=0 en h(t) = 0 anders. (ik vind de optie LaTeX niet meteen terug?)

Als ik logisch nadenk, dan weet ik hoe ik y' in functie van t moet tekenen, maar ik zou dit graag met Matlab willen doen alsof ik helemaal geen inzicht zou hebben in wat het eindresultaat moet zijn.

Ik vroeg me af of iemand me hier mee op weg kan helpen?

Zelf dacht ik aan dit:
  • Ik implementeer de functie h als volgt:
function [ h ] = functieH( t )

if t >= 0

h = 1

else

h = 0

end

end
  • Nu implementeer ik de differentiaalvergelijking y':
function [ ydot ] =diff( functieH)

ydot = functieH(t-1); Hierbij heb ik ferm m'n twijfels of dit idee wel correct is.

end
  • In een script zorg ik dat ik dit kan plotten:
t = linspace (-10: 10: 20);

bis13(t);

fplot('bis13DV', [-10, 10])

Als ik dit dan probeer te runnen krijg volgende foutmeldingen:
  • Error using linspace (line 20)
Not enough input arguments.
  • Error in bis13plot (line 1)
t = linspace (-10: 10: 20);

----------------------------------------

Ik vermoed eigenlijk dat mijn fout niet bij het gebruiken van de functie linspace is (aangezien ik niet zou weten wat ik er fout aan doe), maar wel bij eerdere ideeën of syntax.

Iemand die me wat kan verder helpen?

Berichten: 7.068

Re: Matlab: functie plotten

Gebruik komma's in plaats van dubbele punten:

Code: Selecteer alles

linspace(-10,10,20);


Ik heb trouwens verder geen idee wat je aan het proberen bent... bis13? bis13DV? wat zijn dit voor functies?

Gebruikersavatar
Berichten: 10.179

Re: Matlab: functie plotten

Even wat extra info naast wat Evilbro reeds zei:
Uomo Universale schreef: di 03 apr 2012, 13:04
(ik vind de optie LaTeX niet meteen terug?)
Dat werkt nog steeds zoals vroeger: [ tex ] 3^x [ /tex ] zonder de spaties geeft
\(3^x\)
. Je kunt dat ook bereiken via: "Speciale bb-code" en dan in de dropdown kiezen voor "tex".
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

Berichten: 411

Re: Matlab: functie plotten

Owla, ik heb niet echt goed opgelet, enkele stomme copy-paste foutjes van hoe ik m'n functies heb benoemd. Het moet als volgt zijn:
Uomo Universale schreef: di 03 apr 2012, 13:04
Zelf dacht ik aan dit:
  • Ik implementeer de functie h als volgt:
function [ h ] = functieH( t )

if t >= 0

h = 1

else

h = 0

end

end
  • Nu implementeer ik de differentiaalvergelijking y':
function [ ydot ] =diff( functieH)

ydot = functieH(t-1); Hierbij heb ik ferm m'n twijfels of dit idee wel correct is.

end
  • In een script zorg ik dat ik dit kan plotten:
t = linspace (-10: 10: 20);

functieH(t);

fplot('diff', [-10, 10])
Begrijp je nu m'n bedoeling?

Berichten: 7.068

Re: Matlab: functie plotten

Niet echt... wil je h(t-1) tekenen?

In matlab is een true-value gelijk aan 1 en een false-value gelijk aan 0. De functie h(t) is in matlab dus gewoon gelijk aan: h(t) = (t >= 0). Hier volgt dus uit dat h(t-1) = ((t-1) >= 0). Simpelweg plotten:

Code: Selecteer alles

t = linspace(-10,10,1000);

plot(t,((t-1) >= 0))

Berichten: 411

Re: Matlab: functie plotten

EvilBro schreef: di 03 apr 2012, 16:59
Niet echt... wil je h(t-1) tekenen?

In matlab is een true-value gelijk aan 1 en een false-value gelijk aan 0. De functie h(t) is in matlab dus gewoon gelijk aan: h(t) = (t >= 0). Hier volgt dus uit dat h(t-1) = ((t-1) >= 0). Simpelweg plotten:

Code: Selecteer alles

t = linspace(-10,10,1000);

plot(t,((t-1) >= 0))
Mijn bedoeling is inderdaad om h(t-1) te tekenen en dat is nu ook gelukt! Ik zocht het dus heel wat te ver. Ik heb dit ondertussen ook geprobeerd met de functie y' = 1 - h(t-2) en ook dit klopt!

Bedankt voor de hulp EvilBro!

Reageer