Den primitva funktionen
Hur gör man för att i en matlab script med en given funktion, räkna ut den primitiva funktionens värde för olika t?
Jag har provat med att skriva i scripten i rad 7: p=integral(@(t) @(y), 0, (x)) där jag definierar x i scripten som x=input('vilket tal') men det funkar inte. Hur gör jag?
(Funktionen g behöver stängas med ett "end".)
Om du vill skriva in x och sedan integrera g(t) från 0 till x så skriv
x = input('...')
p = integral(@g,0,x)
Jag insåg att "b" inte var definierad. Sen gjorde jag som du skrev, men gick inte.
Jag har nu ändrat rad 7 till: p=integral(@(t) g(t),0,x)
Men det går inte. Det står: Unrecognized function or variable 't'. Dessutom är p:et markerat med orange.
Soderstrom skrev:Jag har nu ändrat rad 7 till: p=integral(@(t) g(t),0,x)
Men det går inte. Det står: Unrecognized function or variable 't'. Dessutom är p:et markerat med orange.
Vet ej om det hjälper dig generellt men en primitiv funktion till din funktion är
Trinity2 skrev:Soderstrom skrev:Jag har nu ändrat rad 7 till: p=integral(@(t) g(t),0,x)
Men det går inte. Det står: Unrecognized function or variable 't'. Dessutom är p:et markerat med orange.
Vet ej om det hjälper dig generellt men en primitiv funktion till din funktion är
Tror att det blir fel när du integrerar. Du ska integrera med avseende på t. + på matlab används dess inbyggda funktioner :)
Soderstrom skrev:Trinity2 skrev:Soderstrom skrev:Jag har nu ändrat rad 7 till: p=integral(@(t) g(t),0,x)
Men det går inte. Det står: Unrecognized function or variable 't'. Dessutom är p:et markerat med orange.
Vet ej om det hjälper dig generellt men en primitiv funktion till din funktion är
Tror att det blir fel när du integrerar. Du ska integrera med avseende på t. + på matlab används dess inbyggda funktioner :)
Den primitiva funktionen, sånär som på en konstant , är korrekt.
Soderstrom skrev:Jag insåg att "b" inte var definierad. Sen gjorde jag som du skrev, men gick inte.
g är en funktion med ett argument.
g
leder till felmeddelande.
g(2)
räknar ut g(t) för t = 2.
EDIT:
Rad 6 och 7 bör du sätta utanför funktionen g(t).
Funkar fortfarande inte. x:et är dessutom markerat med rött för att: "parse error at x usage might be invalid matlab syntax", som jag inte vet vad det betyder.
Vilket värde har t?
Prova
t = 2;
g(t)
Dr. G skrev:Vilket värde har t?
Prova
t = 2;
g(t)
Soderstrom skrev:Dr. G skrev:Vilket värde har t?
Prova
t = 2;
g(t)
Samma problem fortfarande.
Jag vet inte vilken kod du kör.
Här är en annan funktion som du hade i ett tidigare inlägg.
Först definieras funktionen f(r). Parametern a = 3 sätts i funktionen. Sedan integreras f(t) med quad från t = 0 till t = 3. (integral() funkar inte med octave some jag använder istället för matlab.)
Jag räknar ut f(0.5).
Jag räknar ut f(v), där v är en kolumnvektor.
Kan du köra koden nedan?
function y = f(r)
a =3;
y = 2*pi*r*2.*(1-(r/a)).^(1/2);
end
quad(@f, 0, 3)
f(.5)
v = [1,2,3]';
f(v)
Dr. G skrev:Jag vet inte vilken kod du kör.
Här är en annan funktion som du hade i ett tidigare inlägg.
Först definieras funktionen f(r). Parametern a = 3 sätts i funktionen. Sedan integreras f(t) med quad från t = 0 till t = 3. (integral() funkar inte med octave some jag använder istället för matlab.)
Jag räknar ut f(0.5).
Jag räknar ut f(v), där v är en kolumnvektor.
Kan du köra koden nedan?
function y = f(r)
a =3;
y = 2*pi*r*2.*(1-(r/a)).^(1/2);
endquad(@f, 0, 3)
f(.5)
v = [1,2,3]';
f(v)
Jag har löst problemet med hjälp av "integral", då quad inte är rekommenderad i Matlab (Matlab anger det) av någon skum anledning :). Men tack för hjälpen jag har fått, Dr. G.