Mathematica

Moderators: jkien, Xilvo

Reageer
Berichten: 110

Mathematica

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?

Gebruikersavatar
Berichten: 7.224

Re: Mathematica

':=' 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

Berichten: 110

Re: Mathematica

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?

Gebruikersavatar
Berichten: 7.556

Re: Mathematica

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

Code: Selecteer alles

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:

Code: Selecteer alles

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 -

Berichten: 110

Re: Mathematica

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

Gebruikersavatar
Berichten: 7.224

Re: Mathematica

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

Berichten: 110

Re: Mathematica

Met welke versie van Mathematica werk je?


Mathematica 6.0

Gebruikersavatar
Berichten: 7.556

Re: Mathematica

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 -

Berichten: 3

Re: Mathematica

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

Berichten: 3

Re: Mathematica

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

Berichten: 110

Re: Mathematica

Phys schreef: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...

Berichten: 110

Re: Mathematica

Wiskunde schreef: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?

Gebruikersavatar
Berichten: 7.556

Re: Mathematica

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 -

Berichten: 110

Re: Mathematica

Phys schreef: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.

Berichten: 3

Re: Mathematica

Phys schreef: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...

Reageer