1 van 1

Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 13:05
door lisette--
Hallo,

Voor school moet ik een opdracht doen in Matlab, aangezien ik hier nog niet zo vaak mee gewerkt heb, is dit voor mij een aardig lastige klus. De opdracht is om een grafiek te tekenen met daarin de dwarskrachten en de buigende momenten.

We hebben een balk gekregen waar een aantal belastingen op werken (momenten, puntkrachten en verdeelde belastingen). In totaal heb ik 9 VLS'en getekend, en ik heb dus voor ieder VLS een waarde voor V(x) en M(x). Waarin met V(x) de dwarskrachten worden aangegeven en M(x) de buigende momenten.

Al deze formules heb ik in matlab ingevoerd en de gegeven variabelen heb ik ingevoerd.

Nu probeer ik dit programma te runnen, maar ik krijg constant de foutmelding: undefined function of variable 'x'.

Als voorbeeld heb ik hieronder weergegeven hoe ik het in matlab heb ingevoerd.

%VLS 1: LM1 tot LH1 (0 tot 6)

V(x) = 0;

M(x) = - M1;

%VLS 2: LH1 tot LM2 (6 tot 7)

V(x) = FA_y;

M(x) = FA_y*(x - LH1) - M1;

In de opdracht zijn wel het beginpunt (x0) en eindpunt (xend) van de balk gegeven

x0 = min([0,LF1])

xend = max([22,LF6])

Hoe moet ik nu de waarde voor x invoeren in matlab. Bij mij is volgens mij het beginpunt van de balk 0 en het eindpunt LF6 = 23. Moet ik dan dit domein invoeren in matlab, zo ja hoe?

Re: Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 14:01
door DePurpereWolf

Re: Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 14:15
door lisette--
DePurpereWolf schreef:x = x0:.1:xend;

http://www.mathworks.co.uk/help/techdoc/ref/plot.html
Oké bedankt! Kan matlab de formule niet gewoon uitdrukken in x.

Dat je bijvoorbeeld voor de momentformule M(x) = 3 + 6x krijgt.

Re: Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 14:28
door Bart
Nee, matlab werkt alleen met numeriek waarden, niet met symbolische (uitgezonderd de Symbolic ToolBox).

Re: Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 15:12
door lisette--
x = x0:.1:xend;


Als ik dit invoer in matlab, krijg ik steeds error. Ik heb x0 en xend als respectievelijk 0 en 23 gedefinieerd.

Doe ik iets verkeerd

Re: Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 15:50
door Marko
Doe ik iets verkeerd


Ja, je vertelt niet welke error je krijgt.

Re: Matlab error: undefined function of variablele x

Geplaatst: wo 23 nov 2011, 18:46
door ZVdP
Je mag ook niet

Code: Selecteer alles

 

x=0:.1:23;

M(x) = 3 + 6x;
schrijven.

M(x) betekent voor matlab ofwel dat je de functie 'M' oproept, waarbij je x meegeeft aan deze functie.

Ofwel is M een vector en haal je hieruit een of meerdere elementen, waarbij x de indices bevat van de elementen die je wil. In het laatste geval mag x enkel positieve gehele waarden bevatten natuurlijk.

Bij het definiëren van M moet je de haakjes dus weglaten.

Voorbeeldjes:

Code: Selecteer alles

M=10:20;

i=5;
Als je nu M(i) opvraagt, krijg je het vijfde element van M terug, namelijk 15.

(Je kan dit ook rechtstreeks via M(5))

Code: Selecteer alles

M=10:20;

i=1:5;
Als je nu M(i) opvraagt, krijg je de vijf eerste elementen van M terug in een vector, namelijk [10 11 12 13 14 15]

(ook dit gaat rechtstreeks door M(1:5) te typen)

En voor jouw code:

Code: Selecteer alles

x=0:0.1:23;

M=FA_y*(x-LH1)-M1;
Kan je nu antwoorden hoe veel elementen M bevat en waaraan bijoorbeeld M(15) gelijk is?