Springen naar inhoud

Mathematica


  • Log in om te kunnen reageren

#1

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 24 september 2007 - 18:32

Ik heb een vraagje over Mathematica. Als ik het volgende invoer:

Clear[f,g,a,x];
a=5;
f[x_]=a x;
g[x_]:=a x;

a=5;
{f[2],g[2]}
a=3;
{f[2],g[2]}

dan zie ik twee verschillende oplossingen, namelijk:
{10,10} en {10,6}

Kan iemand mij het verschil uitleggen? Hoe komt het dat = en := zo'n verschillende uitwerking hebben?

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

#2

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 24 september 2007 - 18:38

':=' is een functie definitie. Dat betekent dat de gehele functie symbolisch wordt opgeslagen. Als je dan een bepaald punt wilt hebben, dan zal Mathematica pas op dat moment alle parameters invullen.

'=' staat voor een mathematische berekening. Mathematica rekent dan ax uit en dat is op het moment van definiŽren 5x.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#3

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 26 september 2007 - 21:21

Nog een anderssoortige vraag.

Ik wil graag ik 1 figuur plotten op domein [-2,2] de functie a, waarvoor geldt:

a(x)=2-x op [1,2]
a(x)=1 op [-2,1]

Ik heb dit ingevoerd:
eerste=Plot[2-x, {x,1,2}]
tweede=Plot[1,{x,-2,1}]
Show[eerste,tweede]

Ik zie dan alleen [1,2]. Hoe los je dat op?

#4

Phys

    Phys


  • >5k berichten
  • 7556 berichten
  • VIP

Geplaatst op 26 september 2007 - 21:35

Dat is erg vreemd, want als ik precies jouw code invoer krijg ik ze beide te zien.

Deze code is iets "harder", omdat je op deze manier de functies uitsluitend op hun domein definieert (je kunt uiteraard gewoon copy/pasten):
f[x_]:=2-x/;(1≤x≤2);
   g[x_]:=1/;(-2≤x≤1);
   Plot[{f[x],g[x]},{x,-2,2}];
Ik weet niet of je deze commando's kent, maar "/;" geeft een voorwaarde (condition).

Een beetje vervelend is alleen dat Mathematica de x-as en/of y-as niet altijd laat zien, waardoor je een verkeerde lijn (bijv. y=1) voor de x-as aanziet. Als je dat bij deze code krijgt, kun je bijv. een willekeurige functie h[x] plotten die door de x-as gaat om het overzicht te bewaren:
f[x_]:=2-x/;(1≤x≤2);
 g[x_]:=1/;(-2≤x≤1);
 h[x_]:=x^2;
 Plot[{f[x],g[x],h[x]},{x,-2,2}];
Never express yourself more clearly than you think.
- Niels Bohr -

#5

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 26 september 2007 - 21:47

Dat is erg vreemd, want als ik precies jouw code invoer krijg ik ze beide te zien.


De afzonderlijke plots zie ik ook wel. Bij Show tekent Mathematica het domein [1,2] en zodoende zie ik alleen het tweede deel...

#6

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 26 september 2007 - 21:52

Met welke versie van Mathematica werk je?
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#7

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 26 september 2007 - 22:04

Met welke versie van Mathematica werk je?


Mathematica 6.0

#8

Phys

    Phys


  • >5k berichten
  • 7556 berichten
  • VIP

Geplaatst op 26 september 2007 - 23:47

De afzonderlijke plots zie ik ook wel. Bij Show tekent Mathematica het domein [1,2] en zodoende zie ik alleen het tweede deel...

Je bedoelt het eerste deel :D
Ik zie het toch echt:
[attachment=633:math.gif]

Ik heb versie 5.2 maar dat mag natuurlijk niets uitmaken.

Heb je mijn andere code al geprobeerd??
Never express yourself more clearly than you think.
- Niels Bohr -

#9

Coronae

    Coronae


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 28 september 2007 - 20:04

Ik krijg de grafieken ook niet over het volledige domein te zien... (Ik heb ook versie 6.0 trouwens.) Wat je kunt doen, is Show[eerste,tweede,PlotRange->All]; niet alleen handig voor domeinkwesties, maar ook voor verschillen in bereik. Mathematica neemt anders automatisch die van de eerst vermelde functie

Hoewel de codes van Bart het ook prima doen. :-)

#10

Coronae

    Coronae


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 28 september 2007 - 20:16

Pardon, de codes van Phys.

Zelf heb ik ook oorlog met Mathematica... Ziet iemand hier een bug in? Er zou toch een benadering van wortel 2 uit moeten komen...

w[a_, d_] := Module[{x0 = a, x1, x2}, For[{x1, x2} = {a, 1/2 (x1 + x0/x1)}, x1 - x2 < d, x1 = x2,
x2 = 1/2 (x1 + x0/x1)]; x2]

w[2, 0.00001]

3/2

#11

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 29 september 2007 - 12:26

Je bedoelt het eerste deel :D
Ik zie het toch echt:
[attachment=633:math.gif]

Ik heb versie 5.2 maar dat mag natuurlijk niets uitmaken.

Heb je mijn andere code al geprobeerd??


Ja, het is helemaal gelukt... Dank je!!

Ik heb nog een andere vraag. Ik voer het volgende in:
halvecirkel = Graphics[Circle[{0, 0}, Sqrt[18], {Pi/4, 5 Pi/4}]];
lijn = Graphics[Line[{{-3, -3}, {3, 3}}]];
Show[halvecirkel, lijn, Axes -> True]

Ik wil dit plaatje nu een kleur geven met behulp van het commando Hue. Ik weet alleen niet precies hoe ik de code daarvoor moet aanpassen...

#12

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 29 september 2007 - 13:56

Ja, het is helemaal gelukt... Dank je!!

Ik heb nog een andere vraag. Ik voer het volgende in:
halvecirkel = Graphics[Circle[{0, 0}, Sqrt[18], {Pi/4, 5 Pi/4}]];
lijn = Graphics[Line[{{-3, -3}, {3, 3}}]];
Show[halvecirkel, lijn, Axes -> True]

Ik wil dit plaatje nu een kleur geven met behulp van het commando Hue. Ik weet alleen niet precies hoe ik de code daarvoor moet aanpassen...


Ik wil ook graag de afstand weten tussen Warschau en Amsterdam. En de coordinaten van de stad. Weet iemand hoe je dat moet krijgen?

#13

Phys

    Phys


  • >5k berichten
  • 7556 berichten
  • VIP

Geplaatst op 29 september 2007 - 14:24

Jullie zijn duidelijk met een cursus bezig (toevallig ook Universiteit Utrecht, van Fons van Hees? :D).
Je zou eens kunnen beginnen met in de Help functie kijken hoe de code "Hue" opgebouwd is en dan iets proberen.
De afstanden tussen steden zitten in een bepaald package dat jullie vast aangeleverd krijgen.
Never express yourself more clearly than you think.
- Niels Bohr -

#14

Wiskunde

    Wiskunde


  • >100 berichten
  • 110 berichten
  • Ervaren gebruiker

Geplaatst op 29 september 2007 - 15:30

Jullie zijn duidelijk met een cursus bezig (toevallig ook Universiteit Utrecht, van Fons van Hees? :D).
Je zou eens kunnen beginnen met in de Help functie kijken hoe de code "Hue" opgebouwd is en dan iets proberen.
De afstanden tussen steden zitten in een bepaald package dat jullie vast aangeleverd krijgen.


Ik ben wel met een cursus bezig, maar niet van ene Fons van Hees.

Ik ben al op zoek gegaan naar de packages, maar weet niet hoe die heet en kan hem dus ook niet laden.
Wat betreft Hue, ik weet hoe het werkt, maar niet waar ik het in de gegeven code moet opnemen.

#15

Coronae

    Coronae


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 29 september 2007 - 17:37

Jullie zijn duidelijk met een cursus bezig (toevallig ook Universiteit Utrecht, van Fons van Hees? :D).
Je zou eens kunnen beginnen met in de Help functie kijken hoe de code "Hue" opgebouwd is en dan iets proberen.
De afstanden tussen steden zitten in een bepaald package dat jullie vast aangeleverd krijgen.

Haha Ja dat klopt...





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures