1 van 1

Mathematica

Geplaatst: ma 24 sep 2007, 19:32
door Wiskunde
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?

Re: Mathematica

Geplaatst: ma 24 sep 2007, 19:38
door Bart
':=' 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.

Re: Mathematica

Geplaatst: wo 26 sep 2007, 22:21
door Wiskunde
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?

Re: Mathematica

Geplaatst: wo 26 sep 2007, 22:35
door Phys
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}];

Re: Mathematica

Geplaatst: wo 26 sep 2007, 22:47
door Wiskunde
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...

Re: Mathematica

Geplaatst: wo 26 sep 2007, 22:52
door Bart
Met welke versie van Mathematica werk je?

Re: Mathematica

Geplaatst: wo 26 sep 2007, 23:04
door Wiskunde
Met welke versie van Mathematica werk je?


Mathematica 6.0

Re: Mathematica

Geplaatst: do 27 sep 2007, 00:47
door Phys
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??

Re: Mathematica

Geplaatst: vr 28 sep 2007, 21:04
door Coronae
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. :-)

Re: Mathematica

Geplaatst: vr 28 sep 2007, 21:16
door Coronae
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

Re: Mathematica

Geplaatst: za 29 sep 2007, 13:26
door Wiskunde
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...

Re: Mathematica

Geplaatst: za 29 sep 2007, 14:56
door Wiskunde
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?

Re: Mathematica

Geplaatst: za 29 sep 2007, 15:24
door Phys
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.

Re: Mathematica

Geplaatst: za 29 sep 2007, 16:30
door Wiskunde
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.

Re: Mathematica

Geplaatst: za 29 sep 2007, 18:37
door Coronae
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...