Sida 1 av 6
INLÄMNINGSUPPGIFT 2 (MATLAB) Kurs: Linjär algebra och analys
Del2, analys Kurskod: HF1006 Skolår: 2020/21
Redovisas under en av de tre schemalaggda redovisningstillfällen i slutet av P2.
Individuellt arbete. Använd MATLAB för att lösa dina uppgifter. I nedanstående uppgifter a, b, c och d är de sista fyra siffrorna i ditt personnummer. Har du t ex pn.
751332 2348 så är a=2 , b=3, c=4 och d=8 som du substituerar i dina uppgifter och därefter löser dem.
Två schemalaggda labbövningar ( i P2) är lärarledda lektioner i Matlab.
REDOVISNING.
i) Under kursens gång gör du nedanstående uppgifter 1-6, skriver kommentarer till dina lösningar, sparar varje uppgift som separat m-fil (script) och slutligen redovisar
uppgifterna under en av de tre schemalaggda redovisningstillfällen i P2.
ii) Hinner du inte redovisa dina (korrekta) lösningar i tid måste du göra även uppgift 7.
När du gjort färdigt uppgifterna 1-7 bokar du via e-mail en tid för redovisning hos din klasslärare ( för Analys-delen).
iii) Du redovisar (med hjälp av din laptop) dina uppgifter genom att förklara dina lösningar och visa att dina Matlab-koder fungerar.
iv) Efter godkänd redovisning laddar du upp på Canvas dina lösningar dvs m-filerna samlade i en mapp.
Du behöver inte lämna in någon pappersversion av lösningen.
Uppgift 1. (SUBPLOT)
(Läs gärna help, subplot innan du börjar med uppgiften.
Läs stencilen
http://ingforum.haninge.kth.se/armin/ALLA_KURSER/matlab/PLOT2D.pdf 1 A) Testa och förklara hur nedanstående kommandon fungerar.
clear clc
%% Uppgift 1.
% SUBPLOT figure(4) x=1:0.1:10;
Sida 2 av 6 y1=5*x.^3-3*x.^2+2*x+1.2;
subplot(2,2,1) plot(x,y1)
title('y1=5*x.^3-3x.^2+2*x+1.2');
subplot(2,2,2) x=1:0.1:10;
y2=sin((5*x.^2-2*x)./x);
plot(x,y2,'r')
title(' y2=sin((2*x.^2-2*x)./x)');
subplot(2,2,3) x=1:0.5:10;
z1=cos((3*x.^2+1)./x);
plot(x,z1,' g s -.')
title(' z1=cos((3*x.^2+1)./x)');
subplot(2,2,4) x=-5:0.1:5;
z=2*x.^2-1;
plot(x,z)
title('z=2*x.^2-1');
%%
1 B) Plotta grafer till y=2sin(x) +3cos(10x) och y= 3sin(2x) i intervallet 0 ≤x≤ 2π så att de ligger separat i två koordinatsystem som ligger horisontellt bredvid varandra.
Tips. Använd subplot(1,2,1) och subplot(1,2,2).
Spara script som Uppgift1
Uppgift 2. Symbolisk matematik med Matlab . Beräkning av integraler derivator och gränsvärden
Läs gärna help avsnitt om syms subs , ezplot , diff, int, double, limit innan du börjar med uppgiften.
Testa följande exempel i Matlab och förklara med några ord varje kommando.
%% Uppgift 2.
clear
clc%% syms var1 var2 deklarerar symboliska variabler i Matlab syms x
f=(x^2+1)/x y5=subs(f,x,5) ezplot(f,[- 5, 5]) solve(f==0,x)
%% DERIVATOR g1=diff(f,x) g2=diff(f,x,2) g3=diff(f,x,3) solve(g1==2,x)
%% INTEGRALER
Sida 3 av 6 integral1=int(f) %obestämd integral
∫
fdxI1=int(f,3,5) % integral
∫
53
) ( dxx f
I1b=double(I1) % numeriska värdet av I1 g= sqrt(sin(x)+exp(x))
integral2=int(g)
I2=int(sqrt(sin(x)+exp(x)),0,1) % integralen kan inte beräknas exakt,
% (matlab upprepar uttrycket för integralen utan beräkning)
% medan samma integral kan beräknas numerisk
% med kommandot double
I2num=double(I2)
% eller med direkt numerisk beräkning
I2num= double(int(sqrt(sin(x)+exp(x)),0,1))
%% GRÄNSVÄRDEN L1=limit(f,x,inf) L2=limit(f,x,-inf) L3=limit(f,x,0,'left') L4=limit(f,x,0,'right') L5=limit(f,x,-1,'left') L6=limit(f,x,-1,'right')
Spara script som Uppgift2
Uppgift 3. Lös följande uppgift med hjälp av Matlab Betrakta funktionen
)2
1
)
(( x = e
− x−b−f
3.1 Plotta grafen till f(x) i intervallet b−4≤x≤b+2.
3.2 Beräkna (numeriskt) arean av det område som definieras av b−4≤x≤b+2 , 0≤ y ≤ f(x).
3.3 Beräkna (numeriskt) volymen av den kropp som uppstår vid rotation av området b−4≤x≤b+2 , 0≤ y ≤ f(x)
a) kring x-axeln b) kring y-axeln.
3.4 Beräkna (numeriskt) längden av den del av kurvan som definieras av
)2
1
)
(( x = e
− x−b−f
, b−4≤x≤b+2 Tips. Använd matlab-kommandon från upp2.Kolla motsvarande formler i stencilen Tillämpningar av integraler
http://ingforum.haninge.kth.se/armin/ALLA_KURSER/KURSMATERIAL/MATTE1/ANALYS/TILLAMP_INT.pdf
Spara script som Uppgift3
Uppgift 4. DIFFERENTIALEKVATIONER. Exakta lösningar till några typer av differentialekvationer med kommandot dsolve.
Läs gärna hjälp-avsnitt om dsolve innan du börjar med uppgiften.
Sintax:
syms y(t) % deklarerar y(t) som symbolisk funktion av t
dsolve(ekvation,villkor1,villkor2,villkor3,...) % löser ekvationen med givna villkor
Sida 4 av 6
SKRIVSÄTT i Matlabs dsolve : FUNKTION OCH DERIVATOR:
Glöm inte att deklarera syms y(t)
Matematik Matlab
)
y(t y
) (t
y′ diff(y)
) (t
y ′′ diff(y,2)
VILLKOR
Matematik Matlab
b a
y( )= y(a)==b
b a
y′ )( = Två steg
Steg1: Dy=diff(y) Steg2: Dy(a)==b b
a
y′′ )( = Två steg
Steg1: D2y=diff(y,2) Steg2: D2y(a)==b
Testa följande exempel i Matlab.
Exempel 1. Använd kommandot dsolve i Matlab för att lösa följande differentialekvation e t
t y t
y′( )+10 ( )= −10 , y(0)=1. Plotta lösningen.
Lösning: Bas-syntax för dsolve i Matlab när vi löser en DE består av följande kommandon:
Sintax:
syms y(t) % deklarerar y(t) som symbolisk funktion av t dsolve(ekvation,villkor) % löser ekvationen med givna villkor
Skrivsätt: Derivatan y′(t) skriver vi som diff(y).
För att lösa vår ekvation y′(t)+10y(t)=e−10t, y(0)=1 och plotta lösningen, använder vi följande script:
%% Uppgift 4, exempel 1 clear
clcsyms y(t) % deklarera y(t) som symbolisk funktion ekv1=diff(y)+ 10*y == exp(-10*t) % ekvationen
V1=y(0) == 1 % villkoret
sol1=dsolve(ekv1, V1) % löser DE (lösningen kallas sol1) f1=simplify(sol1) % förenklar lösning och ändrar namn till f1 figure(1) % nästa graf kommer att plottas i figure(1) ezplot(f1,[-1,2]) % plottar lösningskurvan i intervallet [-1,2]
Sida 5 av 6
Exempel 2. Använd kommandot dsolve i Matlab för att lösa följande differentialekvation )
* 2 sin(
* 10 ) ( 3 ) ( 4 )
(t y t y t t
y′′ + ′ + = , y(0)=1, y′( =0) 2. Plotta lösningen.
Lösning:
Anmärkning: vilkoret V2, y′( =0) 1 definierar vi i två steg:
Steg1: Dy=diff(y)
Steg2: V2=Dy(0)==2 ( se matlab help om dsolve)
%% Uppgift 4, exempel 2 clear
syms y(t) % deklarera y(x) som symbolisk funktion ekv4=diff(y,2)+4*diff(y)+ 3*y == 10*sin(2*t) % ekvationen V1=y(0) == 1 % villkor 1: y(0)=1
Dy=diff(y) % mellansteg: Beteckna y' som Dy V2=Dy(0)==2 % villkor 2 y'(0)=2
sol1=dsolve(ekv4, V1,V2) % lösning
figure(2) % nästa graf kommer att plottas i figure(2) ezplot(sol1,[0,10]) % plottar lösningskurvan
Spara script som Uppgift4
Uppgift 5. Använd kommandot dsolve i Matlab för att lösa följande differentialekvationer (med givna villkor) . Plotta varje lösning (lösning k i figure(k)).
1. y t′ − +( ) (1 a y t) ( ) 0= , y( =0) 2 (a och b är parametrar från ditt personnummer)
2. y t′′( ) (3− +b y t) ( ) (2′ + +b y t) ( ) 2 3= t+ , y( =0) 0,y′( =0) 2
3. y′′(t)+(1+c)y(t)=0, y( =0) 0, y′( =0) 3 Spara script som Uppgift5
Uppgift 6. ( Använd Matlab för att lösa följande uppgift.) Bestäm strömmen i(t) i nedanstående LCR-krets då
u(t) =(15+a)cos(10t) V , L=1 H , R1=20 Ω, R2=50 Ω, C=0.001F , i(0)=12 A, 1
) 0
′i( = A /s
6.1 (Papper och penna) Ställ upp en differentialekvation för strömmen i(t) . 6.2 Lös ekvationen m a p i(t) dvs beräkna strömmen i(t) (använd Matlab) . Tips: Använd kommandot dsolve.
6.3 Plotta lösningen med hjälp av kommandot ezplot Spara script som Uppgift6
Om du redovisar första 6 uppgifter under kursens gång behöver du INTE göra uppgift 7 !
Sida 6 av 6
Uppgift 7. ( Använd Matlab för att lösa följande uppgift.) Bestäm strömmen i(t) i nedanstående LR-krets då
u(t) =(2+a)exp(-5t) V , L=(4+b+c) H , R1=(1+b+c)Ω, i(0)=3A.
7.1 (Papper och penna) Ställ upp en differential ekvation för strömmen i(t)
7.2 Lös ekvationen m a p i(t) dvs beräkna strömmen i(t) (använd Matlab) Tips: Använd kommandot dsolve.
7.3 Plotta lösningen.
Spara script som Uppgift7
Lycka till!