%% Variabler/tilldelning r = 3; A = pi*r^2; %% Tilldelning s = 0 s = s+1^2 s = s+2^2 s = s+3^2 %% for-loop s = 0; for i = 1:3 s = s+i^2 end %% if-sats r = input('Radien '); if r>0 A=pi*r^2 else A=0 end %% while-loop s = -1; while s<0 s = input('Skriv ett positivt tal '); end s %% s = 1+1/2+1/3+1/4 ... % Hur många termer för att summan ska bli minst 5? s=0; n=0; while s<5 n=n+1; s=s+1/n; end n %% Egendefinerade funktioner: % 1: Externa funktioner: Ex rotationsyta.m t = linspace(0,2); u = sin(t)+2*exp(-t); figure;clf; rotationsyta(t,u,1); grid on %% % 2: Anonyma funktioner % u(t)=sin(t)+exp(-t) u = @(t)sin(t)+exp(-t); t = linspace(0,2); plot(t,u(t)) %% Euler, steglängd h=0.5 f=@(t,u)-u+sin(t)+cos(t); h=0.5; t0=0; u0=1 % Begynnelsevärde t1=0.5; u1=u0+h*f(t0,u0) t2=1; u2=u1+h*f(t1,u1) t3=1.5; u3=u2+h*f(t2,u2) t4=2; u4=u3+h*f(t3,u3) %% Eulers metod f = @(t,u)-u+cos(t)+sin(t); h = 0.5; u = 1 for t=0:h:2 u = u+h*f(t,u) end %% Eulers metod rita i figuren hold on f = @(t,u)-u+cos(t)+sin(t); h = 0.5; u = 1; for t=0:h:2 plot(t,u,'ms','markersize',10); u = u+h*f(t,u); end %% Bättre att använda vektorer i Matlab f = @(t,u)-u+cos(t)+sin(t); h = 0.5; t = 0:h:2; u(1) = 1; for i = 1:length(t)-1 u(i+1)=u(i)+h*f(t(i),u(i)); end plot(t,u,'c*','markersize',20,'linewidth',2) %% Kortare steglängd ger bättre värden