Symbolske beregninger i Matlab: Forskjell mellom sideversjoner

Fra Matematikk.net
Hopp til: navigasjon, søk
Markonan (diskusjon | bidrag)
Markonan (diskusjon | bidrag)
Linje 60: Linje 60:


==Derivering==
==Derivering==
Kommandoen for derivering er diff (fra engelske ''differentiate''). Derivering fungerer nesten som solve: man må angi hvilken variabel som deriveres selv om det bare er en variabel i uttrykket, men man trenger ikke apostrofene rundt utrykket.
<pre>
>> diff(x^3, x)
ans =
3*x^2
</pre>
Matlab takler kjerneregelen og alle de andre derivasjonsreglene.<br />
<pre>
>> diff(cos(exp(3*x)), x)
ans =
-3*sin(exp(3*x))*exp(3*x)
</pre>
<tex>(\cos(\text{e}^{3x}))^\prime = -3\sin(\text{e}^{3x})\text{e}^{3x}</tex><br />


==Integral==
==Integral==

Sideversjonen fra 29. apr. 2009 kl. 08:17

Innføring i Matlab

Introduksjon
Matlab som kalkulator
Symbolske beregninger
Variabler i Matlab
Vektorregning
Matriser
Plotting av grafer
3d Plotting
Programmering

Matlab ble opprinnelig laget som et program for numeriske beregninger, men har i ettertid fått støtte får symbolske beregninger. Vi skal se på noen anvendelser.

Ligninger

La oss si du skal løse ligningen
<tex>3x + 6 = 2x + 9</tex>
Vi forteller først Matlab at x er en variabel, med kommandoen syms x. Dette kan tenkes på som en forkortelse for Symbolsk verdier: x. Vi løser denne videre med kommandoen solve som tar to parametere: det algebraiske uttrykket vi vil løse og hvilken variabel vi løser det med hensyn på. Her blir det uttrykket angitt over og x. Det algebraiske uttrykket må skrives innenfor apostrofer. Husk at du må skrive 3*x og 2*x, siden det blir feilmelding når man ikke skriver *.

>> syms x
>> solve('3*x + 6 = 2*x + 9', x)
 
ans =
 
3
 

Denne kommandoen kan brukes til å løse ligninger som er en del vanskeligere også.
<tex>\sqrt{x + 3} + \sqrt{x + 5} = 8</tex>

>> syms x
>> solve('sqrt(x + 3) + sqrt(x + 5) = 8', x)
 
ans =
 
769/64
 
 

Ligninger med flere ukjente

Kommandoen solve brukes flere ganger om man har flere ligninger med flere ukjente. Merk: det finnes en mye enklere måte å gjøre dette på ved å skrive ligningssystemet som en matrise. Mer om dette senere. La oss ta et lignignssystem som eksempel.
<tex>3x + 4y = 17</tex>
<tex>2x + 5y = 16</tex>
Husk å fortelle Matlab at både x og y er symbolske verdier. Merk at vi løser den første ligningen med hensyn på x, som angitt, og den andre på hensyn av y, som vi også må angi i kommandoen solve.

>> syms x y
>> solve('3*x + 4*y = 17', x)
 
ans =
 
-4/3*y+17/3
 
 
>> solve('2*(-4/3*y+17/3) + 5*y = 16',y)
 
ans =
 
2
 
 
>> -4/3*(2)+17/3

ans =

    3.0000

Vi fikk y = 2 og x = 3 som vi ser oppfyller ligningen over.

Derivering

Kommandoen for derivering er diff (fra engelske differentiate). Derivering fungerer nesten som solve: man må angi hvilken variabel som deriveres selv om det bare er en variabel i uttrykket, men man trenger ikke apostrofene rundt utrykket.

>> diff(x^3, x)
 
ans =
 
3*x^2
 

Matlab takler kjerneregelen og alle de andre derivasjonsreglene.

>> diff(cos(exp(3*x)), x)
 
ans =
 
-3*sin(exp(3*x))*exp(3*x)
 

<tex>(\cos(\text{e}^{3x}))^\prime = -3\sin(\text{e}^{3x})\text{e}^{3x}</tex>

Integral

Differensligninger

Differensialligninger