Springen naar inhoud

Symbolische toolbox Matlab.


  • Log in om te kunnen reageren

#1

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 21 december 2012 - 11:20

Graag had ik de symbolische toolbox in matlab gebruikt. Echter ik stoot hier al onmiddellijk op volgende probleem stel dat ik volgende uitdrukking heb:

subs(sym('(x-a)/(x+a)'),['x'  'a'],['4'  '5'])

Dan hed ik graag zowel x als a gesubstitueerd door 4 en a door 5 maar ik krijg als resultaat gewoon (x-a/x+a)
Hoe komt dit?
Wat wel werkt is dit in twee keer doen:

een=sym('(x-a)/(x+a)');
twee=subs(een,'x','4')
subs(twee,'a','5')

Echter het is belangrijk dat het in één keer kan dit omdat ik het probeer te gebruiken om meerdimensionale limieten uit te rekenen maar is dat wel een goed idee?
Groeten.

Veranderd door Bert F, 21 december 2012 - 11:21


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

#2

kingtim

    kingtim


  • >25 berichten
  • 68 berichten
  • Ervaren gebruiker

Geplaatst op 21 december 2012 - 14:24

Doet dit wat je wilt?

syms x a;
F=(x-a)/(x+a);
subs(F,[x,a],[4,5]);

Overigens is die stap F = ... niet nodig (je kan gelijk je formule in subs gooien). Maar dit vind ik wat overzichtelijker :).

Voor subs hoef je geen aanhalingstekens bij je symbolen te doen. Vandaar dat matlab bij jou weer een symbool als antwoord gaf.

#3

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 21 december 2012 - 14:28

dat werkt maar wat is het verschil tussen sym en syms?

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 21 december 2012 - 16:36

syms doet hetzelfde maar je kan in 1 call meerdere symbolische variabelen aanmaken (bron)

#5

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 21 december 2012 - 16:48

hoe komt het dan dat het bij mij de eerste keer niet werkte en nu wel?

#6

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 21 december 2012 - 18:12

Omdat je het verkeerd gebruikt denk ik. sym dient om aan te geven dat een bepaald karakter als een variabele beschouwd moet worden, maar jij plaatst er meteen een hele expressie in.

#7

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 21 december 2012 - 19:03

ja zoiets heb ik nodig van een hele string ineen keer aparte symbolische expressie te maken dat heb ik van hier: http://www.mathworks...w_thread/263902
hoe moet dat dan?

#8

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 22 december 2012 - 03:30

Je moet eerst aan MATLAB vertellen wat de symbolen in de expressie zijn door apart sym('x') en sym('a') aan te roepen. Of je kan beide tegelijk doen met syms. Als MATLAB niet weet dat je met x en a symbolen bedoelt, dan zal hij kijken of er variabelen met die naam zijn en de numerieke waarde daarvan gebruiken.

#9

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 22 december 2012 - 10:46

oké bedankt voor de reactie.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures