Springen naar inhoud

Matlab error: undefined function of variablele x


  • Log in om te kunnen reageren

#1

lisette--

    lisette--


  • >100 berichten
  • 213 berichten
  • Ervaren gebruiker

Geplaatst op 23 november 2011 - 13:05

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?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

DePurpereWolf

    DePurpereWolf


  • >5k berichten
  • 9240 berichten
  • VIP

Geplaatst op 23 november 2011 - 14:01

x = x0:.1:xend;

http://www.mathworks...c/ref/plot.html

#3

lisette--

    lisette--


  • >100 berichten
  • 213 berichten
  • Ervaren gebruiker

Geplaatst op 23 november 2011 - 14:15

x = x0:.1:xend;

http://www.mathworks...c/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.

#4

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 23 november 2011 - 14:28

Nee, matlab werkt alleen met numeriek waarden, niet met symbolische (uitgezonderd de Symbolic ToolBox).
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#5

lisette--

    lisette--


  • >100 berichten
  • 213 berichten
  • Ervaren gebruiker

Geplaatst op 23 november 2011 - 15:12

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

#6

Marko

    Marko


  • >5k berichten
  • 8935 berichten
  • VIP

Geplaatst op 23 november 2011 - 15:50

Doe ik iets verkeerd


Ja, je vertelt niet welke error je krijgt.

Cetero censeo Senseo non esse bibendum


#7

ZVdP

    ZVdP


  • >1k berichten
  • 2097 berichten
  • VIP

Geplaatst op 23 november 2011 - 18:46

Je mag ook niet
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:

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))

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:
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?
"Why must you speak when you have nothing to say?" -Hornblower
Conserve energy: Commute with a Hamiltonian





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures