Inlämningsuppgift 2, HF1006.. (MATLAB) INLÄMNINGSUPPGIFT 2 (MATLAB) Kurs: Linjär algebra och analys Del2, analys Kurskod: HF1006 Skolår: 2018/19 Redovisas under en av de tre schemalaggs gda redovisningstillfällen i slutet t 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 s fyra siffrorna i dittt 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ärefterr löser dem. Två schemalaggda labbövningar ( i P2) ärr lärarleddaa lektioner i Matlab. REDOVISNING. i) Under kursens gång gör du nedanståend de uppgifter 1-6, skriver kommentarer till dina lösningar, sparar varje uppgift som separat m-fil (scrip 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 tidd 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 samlade i en mapp. Du behöver inte lämna in någon pappersversion av lösningen. m-filerna 1. (SUBPLOT) (Läs gärna help, subplot innann 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åendee kommandon fungerar. clc %% 1. % SUBPLOT figure( (4) x=1:0.1:10; Sida 1 av 6
Inlämningsuppgift 2, HF1006. (MATLAB) y1=3*x.^3-2*x.^2+2*x+1.2; subplot(2,2,1) plot(x,y1) title('y1=3*x.^3-2x.^2+2*x+1.2'); subplot(2,2,2) x=1:0.1:10; y2=sin((2*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 1 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 börjar med uppgiften. innan du Testa följande exempel i Matlab och förklara med några ord varje kommando. %% 2. clc %% syms var1 var2 deklarerar symboliska variabler i Matlab syms x f=(x^2-2*x)/(x^2-1) y5=subs(f,x,5) ezplot(f,[-15,15]) solve(f==0,x) %% DERIVATOR g1=diff(f,x) g2=diff(f,x,2) g3=diff(f,x,3) solve(g1==0,x) %% INTEGRALER Sida 2 av 6
Inlämningsuppgift 2, HF1006. (MATLAB) integral1=int(f) %obestämd integral fdx 5 I1=int(f,3,5) % integral 3 I1b=double(I1) f ( x) dx % 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,1,'left') L4=limit(f,x,1,'right') L5=limit(f,x,-1,'left') L6=limit(f,x,-1,'right') Spara script som 2 3. Lös följande uppgift med hjälp av Matlab Betrakta funktionen f ( x) e ( x b) 2 3.1 Plotta grafen till f(x) i intervallet b 3 x b 3. 3.2 Beräkna (numerisk arean av det område som definieras av b 3 x b 3, 0 y f ( x). 3.3 Beräkna (numerisk volymen av den kropp som uppstår vid rotation av området b 3 x b 3, 0 y f ( x) kring x-axeln b) kring y-axeln. 3.4 Beräkna (numerisk längden av den del av kurvan som definieras av f ( x) 2 ( x b) e, b 3 x b 3 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 3 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( % deklarerar y( som symbolisk funktion av t dsolve(ekvation,villkor1,villkor2,villkor3,...) % löser ekvationen med givna villkor Sida 3 av 6
Inlämningsuppgift 2, HF1006. (MATLAB) SKRIVSÄTT i Matlabs dsolve : FUNKTION OCH DERIVATOR: Glöm inte att deklarera syms y( Matematik Matlab y ( y y ( diff(y) y ( diff(y,2) VILLKOR Matematik Matlab y( a) b y(a)==b y ( a) b Två steg Steg1: Steg2: y ( a) b Två steg Steg1: Steg2: Dy=diff(y) Dy(a)==b D2y=diff(y,2) 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 10t y ( 10y( e, 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( % deklarerar y( som symbolisk funktion av t dsolve(ekvation,villkor) % löser ekvationen med givna villkor Skrivsätt: Derivatan y ( skriver vi som diff(y). 10t För att lösa vår ekvation y ( 10y( e, y(0)=1 och plotta lösningen, använder vi följande script: %% 4, exempel 1 clc syms y( % deklarera y( som symbolisk funktion ekv1=diff(y)+ 10*y == exp(-10* % 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,[-3,3]) % plottar lösningskurvan i intervallet [-3,3] Sida 4 av 6
Inlämningsuppgift 2, HF1006.. (MATLAB) Exempel 2. Använd kommandot dsolve i Matlab för att lösa följande differentialekvation y ( 4y ( 3y( 10 *sin( 2 * t ), 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) %% 4, exempel 2 syms y( ( % deklarera y(x) som symbolisk funktion ekv4=diff(y,2)+4*diff(y)+ 3*y == 10*sin(2* % 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 4 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 ( ( 1 a b ) y( 0, y ( 0) 2 (a och b är parametrar från ditt personnummer) 2. y ( t ) (3 b) y ( (2 b) y( 2t 3, y(0) 0, y ( 0) 2 3. y ( ( 2 c) y ( t ) 0, y ( 0) 0, y ( 0) 3 Spara script som 5 6. ( Använd Matlab för att lösa följande uppgift.) Bestäm strömmen i( i nedanstående LCR-krets då u( =(20+b)cos(40 V, L= 1 H, R1= =30, R2=40, C=0.001F C, i ( 0) 1 A /s i(0)=1 A, 6.1 (Papper och penna) Ställ upp en differentialekvation för strömmen i(. 6.2 Lös ekvationenn m a p i( dvs beräknaa strömmen i( (använd Matlab). Tips: Använd kommandot dsolve. 6.3 Plotta lösningenn med hjälp av kommandot ezplot Spara script som 6 Om du redovisar första 6 uppgifter under kursens gång behöver du INTE göra uppgift 7! Sida 5 av 6
Inlämningsuppgift 2, HF1006.. (MATLAB) 7. ( Använd Matlab för f att lösa följande uppgift.) Bestäm strömmen i( i nedanstående LCR-krets då u( =(10+a)exp(-10 V, L= =(2+b+c) H, R1=(3+ +b), i(0)=1 i A. 7.1 (Papper och penna) Ställ upp en differential ekvation för strömmen i( 7.2 Lös ekvationenn m a p i( dvs beräknaa strömmen i( (använd Matlab) Tips: Använd kommandot dsolve. 7.3 Plotta lösningen. Spara script som 7 Lycka till! Sida 6 av 6