Grafer
Jag ska lösa uppgiften på första bilden. Men jag vet inte hur man startar igång fplot för som ni ser så funkar inte koden längst ner på bilden då fplot inte är påsatt.
Hur ser hela din kod ut?
Jag skrev bara det första på uppgiften. Det står att det är fel uttryck så jag ändrade till ett ggr-tecken men fick fel uttryck ändå.
Såg nu vad jag gjorde för fel
Jag gissar att det ska vara en ensam variabel på första platsen. Det säger bara vad som är den oberoende variabeln i uttrycket som följer.
Dessutom undrar jag om man inte måste skriva 3*x när man menar 3x.
Så prova @(x)2*sin(3*x)
Fick detta.
Vad kan jag göra för att komma vidare? :)
Varför inte bara:
y=sin(3*x);
fplot(y, [-pi 3*pi], 'blue','LineWidth',2)
Som uppgiften är skriven så använder man anonyma funktioner.
@(x) sin(x) skapar en anonym funktion (en funktion som inte heter något). fplot tar som första argument ett handtag till en funktion. Om man gör som det står i texten, fplot(@(x) sin(x), ...) så tolkas detta som "jag har en funktion av x som är sin(x)" och den funktionen (eller rättare sagt, handtaget till den funktionen) blir första argumentet till fplot.
Däremot kan man nog inte skriva som offan123 gjort, @(3*x), det kommer inte att betyda något för MATLAB. Det som står innanför parenteserna skall vara de formella argumenten till den anonyma funktionen och skall alltså vara "rena" parametrar, sedan följer själva funktionsdefinitionen, som skulle kunna vara t.ex. sin(x), sin(3*x), exp(45*x), ....
Begriper inte riktigt att Dracaenas kod fungerar, den borde definiera en variabel y, inte ett funktionshandtag. Tycker det borde vara y=@(x) sin(x) vilket skapar ett funktionshandtag y. Men man ser inte hur x är definierat där.
offan123 skrev:Vad kan jag göra för att komma vidare? :)
Jag skrev ju det tidigare:
"Jag gissar att det ska vara en ensam variabel på första platsen. Det säger bara vad som är den oberoende variabeln i uttrycket som följer.
Dessutom undrar jag om man inte måste skriva 3*x när man menar 3x.
Så prova @(x)2*sin(3*x)"
Begriper inte riktigt att Dracaenas kod fungerar, den borde definiera en variabel y, inte ett funktionshandtag. Tycker det borde vara y=@(x) sin(x) vilket skapar ett funktionshandtag y. Men man ser inte hur x är definierat där.
Egentligen står det:
syms x
y=sin(3*x);
fplot(y, [-pi 3*pi], 'blue','LineWidth',2)
Men jag missade att ta med första raden.
Aha ja, symbolic toolbox... det var nog inte tanken riktigt :)
Utan symbolic toolbox kan man skriva
y=@(x) sin(x)
och sedan fplot(y, ....)
Första raden skapar ett funktionshandtag till den anonyma funktionen (som är sin(x)).
Ja, du har nog rätt. Minns inte senaste gången jag använda @ om jag ska vara ärlig. Men och andra sidan använder jag mest matlab för att rita upp bodediagramm och dylikt.
fplot(@(x) sin(3*x), [-pi 3*pi], 'blue','LineWidth',2)
Som du påpekar Matsmats fungerar ju också utmärkt. :)
Ser du @offan123 vad du skrivit fel?
Tror inte heller jag använt anonyma funktioner i praktiken, men det finns kanske något ställe de passar fantastiskt bra :)
Okej, då är jag med på vad ni säger. Dock förstår jag inte hur man slår ihop flera grafer samtidigt. Det står "hold on" och "hold off".
hold on gör att du kan fortsätta rita nya kurvor i samma figur. Om du har hold off (som det är när du har en ny figur) så kommer den nya kurvan att radera den gamla.
Ok, då testar jag om det funkar. Jag återkommer om något går fel :)
Dracaena skrev:Varför inte bara:
y=sin(3*x); fplot(y, [-pi 3*pi], 'blue','LineWidth',2)
Var inte intervallet (-3,3)?
-pi till 3*pi stod det i ditt första inlägg.
Jag tror det var mest som ett exempel. Längst ner står intervallet (-3,3)
En sak jag inte är helt med på är varför ni inte har en 2:a framför sin(3*x).
Försök justera koden som finns i tråden så den passar med din uppgift. Du kan se detta som ett till exempel på hur du ska göra.
så fort jag la till 2:an framför sin(3*x) fungerade inte koden längre.
Edit: glömde "*"
När jag satte annan tjocklek på grafen fick jag upp massor med rader om hur man kan förbättra det här. Att jag ska ta fram vektorer osv. Vad bör jag göra nu?
Verkar detta stämma? Man behöver inte ha parentes vid division för grafen va?
Jag verkade få 3 olika grafer på bilden så det måste gått rätt till?
Om du delar på ett tal typ x/2 så är det lugnt. Men har du x/(x-2) så blir det fel utan parenteser.
Angående din varning vet jag inte om du riktigt kan göra ngt åt det.
Varför skulle dina plots vara fel? Du kan dubbelkolla i Desmos om du är osäker.
Om ingen har svarat ännu, försök gärna att redigera ditt inlägg så det inte blir rörigt. :)
Tack!