Symbolske beregninger i Matlab: Forskjell mellom sideversjoner
Linje 30: | Linje 30: | ||
==Ligninger med flere ukjente== | ==Ligninger med flere ukjente== | ||
Kommandoen solve brukes flere ganger om man har flere ligninger med flere ukjente. La oss ta et lignignssystem som eksempel.<br /> | |||
<tex>3x + 4y = 17</tex><br /> | |||
<tex>2x + 5y = 16</tex><br /> | |||
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. | |||
<pre> | |||
>> 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 | |||
</pre> | |||
==Derivering== | ==Derivering== |
Sideversjonen fra 29. apr. 2009 kl. 08:02
Innføring i Matlab |
---|
Introduksjon |
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. 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