Fysik

Ekspert i MatLab

28. oktober 2013 af Smail K (Slettet) - Niveau: Universitet/Videregående

Hej, jeg har et problem med MatLab. Er der nogen her inde der kan finde ud af programmet?

Hilsen Smail


Brugbart svar (0)

Svar #1
28. oktober 2013 af wut123 (Slettet)

Hvad er dit problem?


Svar #2
28. oktober 2013 af Smail K (Slettet)

Det hele omhandler at jeg skal plotte en en planet masse M som funktion af en parameter mx . problemet er nu at værdierne for dette M bliver så små at matlab giver mig de samme tal ud for hver eneste værdi af mx. Jeg bruger endda format double, men dette kan ikke hjælpe mig. Nu ved jeg at det er svært at forholde dig til dette da du næsten ikke ved hvad der foregår. Måske du kan kigge på det jeg skal plotte (formlerne er sat helt rigtigt ind, det har jeg checket for)?


Brugbart svar (0)

Svar #3
28. oktober 2013 af wut123 (Slettet)

Okay jeg kan da prøve.


Svar #4
28. oktober 2013 af Smail K (Slettet)

Koden står neden under. Du kan eventuelt prøve at sætte kopiere dne ind i dit matlab, også ser du at grafen for M bliver en konstant linje, som det ikke skal være.

format long

mx = 1 : 10^(27) : 2*10^(31); // dette er mine værdier for mx


Rr = ((2*10^9)./((mx).^(-(1/3))));
Mr = ((2*10.^(31)./(mx)));


C0 = (3*10^(12).*Rr)./(6.67*10^(-8)*5*Mr);

C1 = (4*pi*5*Rr.^3)./(3*Mr);

M = 2*10.^(31).*(1+C1.*mx.^(-2).*(((1-C0.*mx.^(-4/3)).^(-3))-1));

R = 2*10^9.*(1-C0.*mx.^(-4/3)).^(-1);

(mx.^(-4/3).*C0)   // problemet ligger her. Denne del kommer fra udtrykket for M. Dette led giver mig ens værdier.

plot(mx,M)
 

Jeg håber virkelig at du kan hjælpe mig


Brugbart svar (0)

Svar #5
28. oktober 2013 af Andersen11 (Slettet)

#4

Mener du ikke

mx = 1*10^(27) : 2*10^(31); // dette er mine værdier for mx

med et gangetegn i stedet for et : efter det første 1  ?


Svar #6
28. oktober 2013 af Smail K (Slettet)

#5

Nej, det jeg vil have frem er værdier fra 1 til 2*10^(31) i steps af 10^(27). Disse er vilkårligt valgt.


Svar #7
28. oktober 2013 af Smail K (Slettet)

Hvad så wuy123 kan du komme frem til noget fornuftigt?


Brugbart svar (0)

Svar #8
28. oktober 2013 af Andersen11 (Slettet)

#6

Men mener du ikke værdier fra 1·1031 til 2·1031 med den steplængde?


Brugbart svar (0)

Svar #9
28. oktober 2013 af wut123 (Slettet)

Du regner med alt for små tal og derfor opstår der en masse afrundingsfejl. Matlab kan f.eks. ikke kende forskel på tallene 1-1e-17 og 1. Du bliver nødt til at undgå den slags operationer.


Svar #10
28. oktober 2013 af Smail K (Slettet)

#6

jo det kan jeg sagtens bruge, men det vil ikke ændre på de små tal.

#9

Det kan jeg ikke på nogen måde. Jeg aner virkelig ikke hvad der skal gøres her


Svar #11
28. oktober 2013 af Smail K (Slettet)

Nu har jeg sku fundet ud af det. Når jeg sætter værdierne for C0 og C1 ind i M så ryger al afhængigheden af mx. Så min formel for M afhænger slet ikke af mx


Brugbart svar (0)

Svar #12
28. oktober 2013 af Andersen11 (Slettet)

#7

Er du sikker på, at dine formler er korrekte? Her er en tabel over de indgående størrelser beregnet i Excel med dine udtryk:

Vedhæftet fil:Excel.png

Svar #13
28. oktober 2013 af Smail K (Slettet)

#7

Hej Andersen, jeg sætter meget pris på at du vil hjælpe. Jeg har fundet ud af hvad problemet er. Som skrevet oven over hvis jeg smider mine udtryk for C0 og C1 ind i M så vil M ikke mere afhænge af mx. Dette er pga at jeg har plottet min M som funktion af 1/Mref hvor Mref = M0/mx hvor M0 bare er det første udtryk i fomlen for M. Altså er M0 = 2*10^(31). Men i stedet for at jeg bruger den eksakte værdi for M0 så bruger jeg bare at M0 = mx * Mref hvor jeg nu pludselig få ren lineær afhængighed af mx i M. Også plotter jeg bare M som funktion af Mref. Jeg håber min forklaring var tydelig nok.


Brugbart svar (0)

Svar #14
28. oktober 2013 af Andersen11 (Slettet)

#13

I den slags parametriske studier er det ofte en fordel at danne dimensionsløse størrelser, hvis forløb man ønsker kortlagt. Det giver som regel størrelser inden for et par dekader, og kan også give bedre stabilitet, rent numerisk.


Skriv et svar til: Ekspert i MatLab

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.