Föreläsning 2 Funktionsfiler, scriptfiler If-satser For-loopar While-slingor Funktioner i MATLAB för: lösning av linjära och ickelinjära

Relevanta dokument
Introduktion till MATLAB

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Beräkningsverktyg HT07

Introduktion till Matlab

Sanningar om programmering

MMA132: Laboration 1 Introduktion till MATLAB

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

2 februari 2016 Sida 1 / 23

Sanningar om programmering

Laboration: Grunderna i MATLAB

Du kan söka hjälp efter innehåll eller efter namn

TANA17 Matematiska beräkningar med Matlab

Labb 3: Ekvationslösning med Matlab (v2)

Beräkningsvetenskap föreläsning 2

Variabler och konstanter

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MMA132: Laboration 2 Matriser i MATLAB

TANA17 Matematiska beräkningar med Matlab

Introduktion till Matlab

Matlabföreläsningen. Lite mer och lite mindre!

MATLAB övningar, del1 Inledande Matematik

Kort om programmering i Matlab

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Matlabövning 1 Funktioner och grafer i Matlab

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Föreläsning 2 Programmeringsteknik och C DD1316

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

MAPLE MIKAEL STENLUND

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Introduktion till Matlab

TAIU07 Matematiska beräkningar med Matlab

Matlabövning 1 Funktioner och grafer i Matlab

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

TSBB14 Laboration: Intro till Matlab 1D

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

) + γy = 0, y(0) = 1,

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Skapa egna funktioner

Laboration 1, M0039M, VT16

Användarhandledning Version 1.2

For-sats/slinga. Notis

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

MATLAB - en kompakt introduktion av Tore Gustafsson

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Instruktion för laboration 1

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Crash Course Envarre2- Differentialekvationer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

TAIU07 Matematiska beräkningar med Matlab

Objektorienterad programmering Föreläsning 2

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Från labben: if, for och while. Från labben: if, for och while. Från labben: if, for och while. Från labben: if, for och while

Dagens teman. Linjära ODE-system av ordning 1:

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

TMV156/TMV155E Inledande matematik E, 2009

4.3. Programmering i MATLAB

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Allmänt om Mathematica

Linjär algebra med tillämpningar, lab 1

Newtons metod och arsenik på lekplatser

Programmering i Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan

Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

Sanningar om programmering. Sanningar om programmering. Programmeringsprocessen. Att skriva program i Matlab. Programmeringsprocessen

Matematisk Modellering

Börja programmera. Kapitel 4 i kompendiet Jämförande uttryck Villkorssatser Loopar (slingor) Funktioner. Läs inte avsnitt 4.2.3

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Introduktion till Matlab

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Introduktion till PHP

15 februari 2016 Sida 1 / 32

Introduktion till Matlab

Introduktion till Matlab

Ordinära differentialekvationer,

Introduktion till Matlab

En introduktion till MatLab

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

ÖVN 2 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF1683. Inofficiella mål

LABORATION cos (3x 2 ) dx I =

Kort om programmering i Python

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Matriser och vektorer i Matlab

Sanningar om programmering. Sanningar om programmering. Programmeringsprocessen. Att skriva program i Matlab. Programmeringsprocessen

TANA17 Matematiska beräkningar med Matlab

Språket Python - Del 1 Grundkurs i programmering med Python

Inledande programmering med C# (1DV402) Summera med while"-satsen

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Transkript:

MP006 Perspektiv på materialdesign: MATLAB MAT: Föreläsning Funktionsfiler, scriptfiler If-satser For-loopar While-slingor Funktioner i MATLAB för: lösning av linjära och ickelinjära ekvationer lösning av första ordningens ordinära differentialekvationer Bilder 008-0-4

MP006 Perspektiv på materialdesign: MATLAB MAT: Funktionsfiler och scriptfiler i MATLAB Det finns två typer av Matlabfiler (M-filer): Scriptfiler: En samling satser som lagras i en M-fil. En scriptfil eekveras som om kommandona skrivits in i kommandofönstret. Script-filer delar kommandofönstrets arbetsminne. Funktionsfiler: En speciell sorts M-fil som kan ta emot indata i samband med anropet (inargument) och returnera ett resultat (utargument) till det anropande programmet. Funktioner använder ett eget arbetsminne

MP006 Perspektiv på materialdesign: MATLAB MAT:3 Eempel med funktionsfil: function z = my_mean(,y) %MY_MEAN calculates the mean value of numbers. %More comments eplaining the function..., %end the comments with a blank line z = (+y)/; end %function my_mean Dummy arguments (z,, y) >> a=my_mean(3,7) a = 5 >> =[5 8 0]; >> p=[8-0]; >> b=my_mean(,p) Actual arguments (a, 3, 7) Funktionsfilen sparas som: my_mean.m b = 6.5000 5.0000 5.0000

MP006 Perspektiv på materialdesign: MATLAB MAT:4 The function mean eists already in MATLAB lookfor <function name> Gives a short eplanation of the fcn >> =[ 3 4 5]; >> a=mean() a = 3 Try also >>help mean >>help my_mean

MP006 Perspektiv på materialdesign: MATLAB MAT:5 Eempel med Scriptfil: Scriptfilen sparas som: medel_varde.m % Script File: medel_varde.m disp('beräkning av medelvärdet av två tal/vektorer'); = input('ange det första numeriska värdet: '); y = input('ange det andra numeriska värdet: '); medel = (+y)/; disp(['medelvärdet är : ' numstr(medel)]); >> medel_varde Beräkning av medelvärdet avtvå tal/vektorer Ange det första numeriska värdet: 3 Ange det andra numeriska värdet: 7 Medelvärdet är : 5 Använd beskrivande kommentarer i både script- och funktions-filer >> medel_varde Beräkning av medelvärdet avtvå tal/vektorer Ange det första numeriska värdet: [ 3] Ange det andra numeriska värdet: [4 5 6] Medelvärdet är :.5 3.5 4.5

MP006 Perspektiv på materialdesign: MATLAB MAT:6 All programspråk för datorer innehåller speciella satser s.k. styrande satser, som avgör i vilken ordning satserna i programmet ska utföras. Med de styrande satserna kan den linjära strukturen i programmet brytas: vissa satser hoppas över medan andra upprepas De styrande satserna kan indelas i: Villkorssatser (if, switch): vissa delar av koden utförs bara om något villkor är uppfyllt Repetitionssatser (for, while) : vissa delar av koden upprepas enligt något villkor

MP006 Perspektiv på materialdesign: MATLAB MAT:7 Villkor, logiska uttryck och jämförelseoperatorer Styrande satser innehåller villkor som avgör vilka satser som ska utföras. I MATLAB uttrycks villkoren med logiska variabler eller logiskt uttryck. En logisk variabel är en speciell typ av varaiabel som bara kan ha två värden: sant eller falskt (true eller false). Ett logiskt uttryck ger ett resultat som är sant eller falsk. Den allmänna formen för ett logiskt uttryck är: a op a Logiska uttryck kan konstrueras med aritmetiska uttryck (a, a) och jämförelseoperatorerna (op) enligt tabellen nedan. Uttrycken kan även konstrueras med logiska operatorer.

MP006 Perspektiv på materialdesign: MATLAB MAT:8 Villkorssatsen -if satsen if <logiskt uttryck > satsgrupp elseif <logiskt uttryck > satsgrupp else satsgrupp 3 end Med if-satsen kan flervalssituationer lösas. Bara satserna för ett av villkoren kommer att utföras. elseif och else kan utelämnas. %Script file: condition_.m a = input('enter a value for the variable a: '); if a<0 disp('a is negative'); elseif a>= 0 disp('a is greater than 0'); else disp('a is positive and less than 0'); end

MP006 Perspektiv på materialdesign: MATLAB MAT:9 function funk() %FUNK is a test for if-statement if ==0 disp('the number is 0'); elseif >0 disp('the number is positive'); else disp('the number is negative'); end end %function funk funktionen saknar out-argument ==0, jämförelse likhetstecken funktionsfilen funk.m % Script file: test_of_funk.m clc; num = input('enter a number: '); funk(num); scriptfilen test_of_funk.m >> test_of_funk Enter a number: - The number is negative

MP006 Perspektiv på materialdesign: MATLAB MAT:0 Repetitionssatser: for-satsen, while-satsen MATLAB har två satser för att upprepa t.e. en viss typ av beräkningar: for och while. Dessa gör det möjligt att utföra en grupp av satser en eller flera gånger for-satsen används när man upprepar ett fit, förutbestämt antal gånger. while-satsen används när man upprepar så länge ett logiskt villkor är sant. Den är lämplig att använda när man inte vet hur många gånger något ska utföras.

MP006 Perspektiv på materialdesign: MATLAB MAT: for - satsen: Allmän form för en for -sats: for inde = uttryck satsgrupp end Slutet på for-satsen markeras med ett end inde är namnet på en s.k. loopvariabel. Den sätts i tur och ordning till kolumnerna i den vektor som är resultatet av uttryck. Eempel: my_sum = 0; for ii = ::00 my_sum = my_sum + ii; end my_sum = ++3+ +00 = = 5050 Satsgruppen utförs en gång för varje värde på loopvariabeln. Satsgruppen kan i princip vara vilken MATLAB-kod som helst

MP006 Perspektiv på materialdesign: MATLAB MAT: while - satsen: I en while-sats repeteras en satsgrupp så länge ett logiskt villkor är sant. En whilesats har formen: while logiskt_uttryck satsgrupp end Logiskt_uttryck beräknas när eekveringen av while-satsen börjar. Om det logiska uttrycket är sant utförs satsgrupp. Därefter beräknas det logiska uttrycket igen och förfarandet upprepas tills det logiska uttrycket blir falskt. Eempel: my_sum = 0; ii = ; while ii <=00 my_sum = my_sum + ii; ii=ii+; end my_sum = ++3+ +00 = = 5050 (ii = 0 efter while-satsen)

MP006 Perspektiv på materialdesign: MATLAB MAT:3 Test av for-loop med funktionsfil och kommandofil (script file) function sum=for_sum(start,slut) %FOR_SUM test of for loop sum_i=0; for i=start::slut sum_i=sum_i+i; end sum = sum_i; end %function for_sum Funktionsfil för test av for-loop Här kan i användas som inde, sum som variabelnamn % Script file: test_for_sum clc s = input('ange startvärdet: '); p = input('ange slutvärdet: '); if s<=p disp(['summan blev: ' numstr(for_sum(s,p))]); else disp('felaktiga värden'); end >> test_for_sum Ange startvärdet: Ange slutvärdet: 00 Summan blev: 5050

MP006 Perspektiv på materialdesign: MATLAB MAT:4 MATLAB-funktionen sum kan beräkna samma summa! >> ii=::00; >> s=sum(ii) s = 5050 Information om funktionen sum från MATLAB help

MP006 Perspektiv på materialdesign: MATLAB MAT:5 Lösning av icke linjära ekvationer (): Polynom Ett polynom är ett matematiskt uttryck där variabler och konstanter kombineras enbart genom addition, subtraktion och multiplikation. Ett polynom kan alltid uttryckas på standardformen: P( ) = n k = 0 a k k = a n n + a Eempel, ett andragradspolynom: n n +... + a + a P( ) = + 3 6 Ett polynom i Matlab kan beskrivas med enbart koefficienterna, P( ) = + 3 6 => P( i) = [ 3-6] Polynomets nollställen kan bestämmas med funktionen roots(c): >> roots([ 3-6]) 0

MP006 Perspektiv på materialdesign: MATLAB MAT:6 Några eempel: >> roots([ 3-6]) ans = -4.373.373 >> roots([ 3 6]) ans = -.5000 +.9365i -.5000 -.9365i >> roots([ 3 4 5 6 7 8-9]) ans = -.5763 -.597 +.0366i -.597 -.0366i -0.586 +.4806i -0.586 -.4806i 0.89 +.0870i 0.89 -.0870i 0.5745

MP006 Perspektiv på materialdesign: MATLAB MAT:7 Lösning av icke linjära ekvationer (): alla typer (?) Ekvationen/funktionen definieras i en funktionsfil Funktionens nollställen kan bestämmas med fsolve eller fzero Funktionen kan plottas med fplot

MP006 Perspektiv på materialdesign: MATLAB MAT:8 function f = funk_() %FUNK_ Eample of solving equations Funktionsfil: funk_.m f = log0()-.^+; end %function funk_ %Script file: test_of_funk_.m %plottning av funktionen fplot('funk_',[0.5 ]); %hitta nollställen 0=fsolve('funk_',0.6); disp(['nollställe vid: ' numstr(0)]); %bestäm funktionsvärden =0:0.5:3; %radvektor med 7 element tabell=[' funk_()']; %tabell med 7 rader kolumner disp('funktionsvärden:'); disp(tabell); Script fil: test_of_funk_.m

MP006 Perspektiv på materialdesign: MATLAB MAT:9 Utdata från script file test_of_funk_.m 0=fsolve('funk_',0.6); Nollställe vid: 0.56844 Funktionsvärden 0 -Inf 0.5000-0.050.0000 0.5000-0.5739.0000 -.6990.5000-3.35 3.0000-5.59 Funktionen f = log0()-.^+; obs

MP006 Perspektiv på materialdesign: MATLAB MAT:0 Eempel med funktionen fzero och en handle till en funktion % Script file: test_of_funk_.m %plottning av funktionen hh=@funk_; %hh=handle till funktionen fplot(hh,[0.5 ]); %hitta nollställen 0=fzero(hh,[0.5 0.7],e-5); %0=fzero(hh,,e-5); disp(['nollställe vid: ' numstr(0)]); %bestäm funktionsvärden =0:0.5:3; %radvektor med 6 element tabell=[' hh()']; %tabell med 6 rader kolumner disp('funktionsvärden:'); disp(tabell); En handle är praktisk att använda, eftersom programmet blir mer generellt. fzero(handle,[start slut],tolerans) fzero(handle,near,tolerans) 0= 0.56844 för rad 6 0= för rad 7 (kommentar)

MP006 Perspektiv på materialdesign: MATLAB MAT: Lösning av differentialekvationer (): Allmänt n n d y d y dy a0 + a +... + a a y f ( t) n n n + n = dt dt dt Liinjär diff.ekv. Linjär diff.ekv => alla derivatorer ingår i linjära termer, inte av typ: n:te ordningen => n är högsta derivatans ordningsnummer konstanta koefficienter => a:na är konstanter, inte funktion av t f(t) kallas störfunktion,drivfunktion f(t) = 0 => homogen diff.ekv. dy dt Lösningen till differentialekvationen består av summan y h + y p y h = lösningen till den homogena diff. ekv. y p = partikulärlösningen

MP006 Perspektiv på materialdesign: MATLAB MAT: Lösning av differentialekvationer (): Allmänt, Eempel Bestäm lösningen till den homogena differentialekvationen : d y dy + 5 + 6y = 0 dt dt rt Gör ansatsen y = e och sätt in i diff.ekv. => ( r Den karakteristiska ekvationen r r e rt = - och r Den allmänna lösningen blir då : Konstanterna C y = C e + 5r + 6) = 0 t + C = -3 e 3t och C + 5r + 6 = 0 har rötterna bestäms av diff.ekv.randvillkor. Om den karakteristiska ekvationen har imaginära rötter eller dubbelrot blir lösningen på annat sätt, se blad 4.

A MP006 Perspektiv på materialdesign: MATLAB MAT:3 Lösning av differentialekvationer (3): Allmänt, eempel Bestäm en partikulärlösning till : d y dy + 5 + 6y = 6t t + 0 dt dt Polynomansats för partikulärlösningen : Sätt in partikulärlösningen i diff.ekv.: y = + 0A t + 5A Lösning, identifiering ger : A Partikulärlösningen blir : y = t t + 3 Den allmänna lösningen blir : t Konstanterna C A t y = C e + A t + A + C + 6A t e 3t och C 3 + 6A t + 6A + t =, A t + 3 3 = 6t =, t + 0 = 3 bestäms av diff.ekv.randvillkor. A 3

MP006 Perspektiv på materialdesign: MATLAB MAT:4 Lösning av differentialekvationer (4): Allmänt, eempel Bestäm lösningen till den homogena differentialekvationen : d y dy + 4 + 3y = 0 dt dt rt Gör ansatsen y = e och sätt in i diff.ekv. => Den karakteristiska ekvationen r Den allmänna lösningen blir då : där r e e ( C B rt ( r = - + 3i och r t B e ( C t = ( C ) e Konstanterna C y = C e + C + 4r + 3) = 0 ( + 3i) t (cos3t + i sin 3t) + C t + C cos3t + i( C och C = --3i cos3t + B e e t + C ) och B ( 3i) t sin 3t = e C = i( C t + 4r + 3 = 0 har rötterna ( C e (cos3t i sin 3t)) = ) e C t ) 3it + C 3it ) = bestäms av diff.ekv.randvillkor. sin 3t = e

MP006 Perspektiv på materialdesign: MATLAB MAT:5 Lösning av differentialekvationer: Matlab Matlab använder ode-solvers (ode45, ode3,.) för att lösa diff.ekv. Allmän form: [time,]=solver(fh,t,0) time: radvektor med tidsvärden : radvektor med lösning för varje tidsvärde solver: en av Matlabs ode-solver fh: definierar funktionen som ska lösas (function handle) t: tidsvärden från start till slut för lösningen 0: startvärden, randvillkor OBS Matlabs ode-solvers kan lösa diff.ekv. av :a ordningen och system av diff.ekv. av :a ordningen. En diff.ekv. av grad n kan enkelt beskrivas som ett system med n diff.ekv. av :a ordningen.

MP006 Perspektiv på materialdesign: MATLAB MAT:6 Lösning av differentialekvationer: Matlab function f=fprim_(t,y) %FPRIM first eample of ode-solving %The ode y'=t+y f=t+y; %the derivative end %function fprim_ Funktionsfil för diff.ekv. dy dt y = t %Script file: test_ode.m %ode of first order %y'=t+y, y()=, calculate y(5) hh=@fprim_; [t y]=ode45(hh,[ 5],); plot(t,y); grid on; title('plot of y(t) for y''=t+y, y()='); label('time'); ylabel('y-value'); Script-fil för test

MP006 Perspektiv på materialdesign: MATLAB MAT:7 Lösning av differentialekvationer: Matlab The solution

MP006 Perspektiv på materialdesign: MATLAB MAT:8 Lösning av differentialekvationer (5): Allmänt, eempel Enligt tidigare eempel: d y dy + 5 + 6y = 6t t + 0 dt dt Antag startvärden vid t = 0 : dy dy fall: = 0, y(0) = 0 fall : = 0, dt dt Derivering av lösningen => y = C e Insättning av värden för fall () => y = C e t y(0) = 50 3C e => y( 0 ) = C t 3t + C y (0) = C + C e + t + 3 = 0 (50) 3C 3t + t t + 3 = 0 (0) Konstanterna kan bestämmas till : C C = -7; C = 43; C = 4 för fall = 96 för fall

MP006 Perspektiv på materialdesign: MATLAB MAT:9 Lösning enligt fall: y fall: y = 7e = 43e t t + 4e 3t 96e + t 3t + t t + 3 t + 3 %Script file: plot_diff_e.m %Plot av diff.ekv. enligt fall och fall %Se föreläsning MAT t=0:0.:5; %fall subplot(,,) f=-7*ep(-*t)+4*ep(-3*t)+t.^-*t+3; plot(t,f); title('fall '); %fall subplot(,,) f=43*ep(-*t)-96*ep(-3*t)+t.^-*t+3; plot(t,f); title('fall ');

MP006 Perspektiv på materialdesign: MATLAB MAT:30 Lösning av differentialekvationer (5): Allmänt, eempel Den ursprungliga diff.ekv.av : a ordningen kan omvandlas till ett system av: a ordningens diff.ekv. d y dy + 5 + 6y = 6t dt dt Inför nya variabler och = y = y& => => & & = 6t så att : t + 0 5 Ekvationerna () och () är ett system Ekvationssystemet kan (enkelt) = t + 0 <=> && y + 5y& + 6y + 6 () () av diff.ekv.av: a ordningen! beskrivas i Matlab. = 6t t + 0 function prim= my_diff(t,) %MY_DIFF test ode prim= [();6*t.^-*t+0-5*()-6*()]; end%function rad rad

MP006 Perspektiv på materialdesign: MATLAB MAT:3 Lösning av differentialekvationer: Matlab function prim= my_diff(t,) %MY_DIFF test ode prim= [();6*t.^-*t+0-5*()-6*()]; end%function %Script file: test_my_diff.m figure(); grid on; [time ]=ode45(@my_diff,[0 5],[0 0]); subplot(,,); plot(time,(:,)); title('fall '); [time ]=ode45(@my_diff,[0 5],[50 0]); subplot(,,); plot(time,(:,)); title('fall '); startvillkor[ ]

MP006 Perspektiv på materialdesign: MATLAB MAT:3 Laboration Del : Ekvationslösning med matriser, se tips på nästa sidor Del : Dämpade oscillatorn, differentialekvation Lös ekvationen för hand (två varianter) och plotta resultatet Gör (frivillig uppgift) samma lösning med system av :a ordningens diff.ekv. Laboration 3 Programmering med villkors- och repetitions-satser

MP006 Perspektiv på materialdesign: MATLAB MAT:33 Repetition(?) Ekvationssystem, matriser Y X A = <=> = = + + + = + + + = + + + = + + + * 8 5 * 5 64 8 5 5 5 7 9 3 matrisform blir ekvationssystemet: På 5 64 8 8 5 5 5 5 7 9 3 4 3 4 3 4 3 4 3 4 3

MP006 Perspektiv på materialdesign: MATLAB MAT:34 % Script file: eq_syst_.m % eq.system, matri description: A* = y A= [ ; 3 9 7; 5 5 5; 8 64 5] y=[ - 5 8 ]'; = A\y; disp(['()= ',numstr(())]); disp(['()= ',numstr(())]); disp(['(3)= ',numstr((3))]); disp(['(4)= ',numstr((4))]); m=inv(a)*y; disp(['m()= ',numstr(m())]); disp(['m()= ',numstr(m())]); disp(['m(3)= ',numstr(m(3))]); disp(['m(4)= ',numstr(m(4))]); ()= -8 ()= 7.0333 (3)= -. (4)= 0.066667 m()= -8 m()= 7.0333 m(3)= -. m(4)= 0.066667

MP006 Perspektiv på materialdesign: MATLAB MAT:35 % Script file: eq_syst_.m % Solutions for overdetermined eq systems % The Equations: % () + () + (3) = - % () + 3*() + 9*(3) = 5 % () + 5*() + 5*(3) = 8 % () + 8*() + 64*(3) = % eq.system, matri description: A* = y A= [ ; 3 9 ; 5 5 ; 8 64 ] y=[ - 5 8 ]'; = A\y; disp(['()= ',numstr(())]); disp(['()= ',numstr(())]); disp(['(3)= ',numstr((3))]); ()= -5.3984 ()= 3.8685 (3)= -0.385 % m=inv(a)*y; Error Matri must be square