MATLAB ile Sembolik Analiz

advertisement
MATLAB ile Sembolik
Analiz
Symbolic Math Toolbox
Sembolik Matematik Araç Kutusu
Artılar - Eksiler
Sembolik programlamanın artıları
Analitik çözümler elde edilebilir.
Çok yüksek hassasiyetlere erişilebilir
Hatasız veya çok düşük hatalarla işlem yapılabilir
Sembolik programlamanın eksileri
Çözüm süresi uzundur
Çok fazla bilgisayar kaynağı gerekir
Sembolik Nesneler
- Bir sembolik nesne özel bir MATLAB veri tipidir.
- Sembolik nesneler yardımıyla, matematiksel işlemleri, sayısal değerler kullanmadan analitik
olarak hesaplayabilirsiniz.
- Analitik hesaplamaların geniş bir yelpazesinde sembolik nesneler kullanılır:
• Limit (tek taraflı limitler dahil)
• Adi ve kısmi türev
• Belirli ve belirsiz integral
Sembolik nesneler,
• Seriler (Taylor serileri dahil)
sembolik değişkenler,
• Matris işlemleri
sembolik sayılar,
• Cebirsel denklem ve diferensiyel denklem çözme
sembolik ifadeler,
• İntegral dönüşümleri
sembolik matrisler ve
sembolik fonksiyonlardır.
Sembolik Değişken Tanımlama
Sembolik değişkenleri oluşturmak için sym (tek bir sembolik değişken tanımla) veya syms (bir veya daha çok
sembolik değişken tanımlama) komutu kullanılır.
degisken_adi = sym (‘degisken_degeri’)
sym komutu ile sembolik değişkenler ve sembolik ifadeler oluşturulur.
>> x=sym('x')
x=
x
a=sym('alpha')
a=
alpha
>> z=sym(2)
z=
2
Değeri x olan x sembolik değişkeni oluşturur.
Değeri alpha olan a sembolik değişkeni oluşturur.
Değeri 2 (sembolik 2, sayısal 2 değil) olan z sembolik değişkeni oluşturur.
Ekran görüntüsüne dikkat!
>> z=2
z=
2
Sembolik Değişken Tanımlama
Sembolik değişkenleri oluşturmak için sym (tek bir sembolik değişken tanımla) veya syms (bir veya daha çok
sembolik değişken tanımlama) komut kullanılır.
syms degisken1 degisken2 degisken3 …
>> syms a
veya
>> syms b c d
syms komutu ile bir veya daha fazla sembolik değişkenler
ve sembolik ifadeler oluşturulur.
Önce sembolik a değişkeni, sonra sembolik b, c ve d değişkenleri oluşturur.
Farklar
syms komutu
 Parantez ve tırnak işaretine ihtiyaç duymaz. syms x
 Bir defada çoklu sembolik nesneler oluşturulabilir.
 Bir veya daha çok sembolik değişkenler oluşturmak için idealdir.
sym komutu





Parantez ve tırnak işaretine ihtiyaç duyar. x = sym('x')
15 veya daha az ondalıklı bir sembolik sayı tanımlarken tırnak işaretine ihtiyaç yoktur.
Bir defada bir sembolik nesne oluşturulur
Sembolik sayılar ve sembolik ifadeler oluşturmak için idealdir.
Fonksiyonlarda yada scriptlerde sembolik nesneler oluşturmak için idealdir.
Değişken türü belirtme
>> x=sym('x','real')
>> y=x'
y = x
>> x=sym('x','unreal')
>> y=x'
y = conj(x)
Gerçel (real) x değişkeni tanımlanır.
Bu durumda x in transpozu kendisine eşit olur.
Gerçel olmayan (unreal) x değişkeni tanımlanır.
Bu durumda x in transpozu konjugesine eşit olur.
Değişken türü belirtilmediği durumlarda söz konusu değişkenin türü, «unreal» olarak kabul edilir.
Benzer varsayım
>> syms x
ile tanımlanan x sembolik değişkeni için de geçerlidir. Yani bu tanımlama ile x değişkeni unreal olarak kabul edilir.
f = ax^2 + bx + c
>> f = sym('a*x^2 + b*x + c')
f=
a*x^2 + b*x + c
ÖNCE
a = sym('a');
b = sym('b');
c = sym('c');
x = sym('x');
f değişkenin ax^2+bx+c sembolik ifadesini atar. Bununla sembolik
ifadedeki a, b, c ve x birer değişken değildir. f üzerinde sembolik
matematik işlemlerini uygulayabilmek için değişkenleri ayrıca tanımlamak
gerekir. Bunun yerine,
VEYA
syms a b c x
SONRA
f = a*x^2 + b*x + c;
Sembolik ifade oluşturma
>> phi = sym('(1 + sqrt(5))/2')
phi =
5^(1/2)/2 + 1/2
Sembolik phi ifadesi oluşturuldu.
Not: Sembolik Araç Kutusunda, pi ayrılmış bir kelimedir.
>> f = phi^2 - phi - 1
f=
(5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
Sembolik fonksiyon oluşturma
Sembolik fonksiyonlar oluşturmak için sym ve syms komutlarının her ikisi de kullanılabilir.
Sembolik fonksiyon oluşturmanın en basit yolu syms komutunu kullanmaktır:
>> syms f(x, y)
>> syms x y;
>> f(x, y) = sym('f(x, y)');
>> syms x y
>> f(x, y) = x^3*y^3
x ve y sembolik değişkenli sembolik fonksiyonu oluşturulur.
sym sadece fonksiyonu oluşturur, argümanları olan x ve y değişkenlerini
oluşturmaz. Bu yüzden, fonksiyondan önce x ve y sembolik değişkenleri
tanımlanmıştır.
x = y+1 için f(x,y)=?
>> f(y + 1, y)
ans =
y^3*(y + 1)^3
Sembolik fonksiyon oluşturma
Sembolik fonksiyonlar oluşturmak için symfun komutu da kullanılabilir.
f=symfun(formül, giriş_degiskenleri)
f(x, y) = x + y fonksiyonunu oluşturmak için:
>> syms x y
>> f = symfun(x + y, [x y])
syms x y
f(x, y) = x + y
Sembolik matris oluşturma
>> syms a b c
>> A = [a b c; c a b; b c a]
A=
[ a, b, c]
[ c, a, b]
[ b, c, a]
>> A = hilb(3)
A=
1.0000 0.5000 0.3333
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000
>> A=sym(A)
A=
[ 1, 1/2, 1/3]
[ 1/2, 1/3, 1/4]
[ 1/3, 1/4, 1/5]
Sembolik değişken bulma
Bir ifade, fonksiyon veya matristeki sembolik değişkeni bulmak için symvar komutu kullanılır.
>> syms a b n t x;
>> f = x^n;
>> g = sin(a*t + b);
>> symvar(f)
ans =
[ n, x]
>> symvar(g)
ans =
[ a, b, t]
>> symvar(g, 2)
ans =
[ t, b]
>> syms x y w z
>> f(w, z) = x*w + y*z;
>> symvar(f)
ans =
[ w, x, y, z]
>> symvar(f, 2)
ans =
[ w, z]
g deki sembolik ilk iki değişkeni bulur.
Burada ilk iki değişken a ve b değildir.
Onları ,x e yakınlığına göre sıralar.
symvar komutu ile bir fonksiyondaki
sembolik değişkenleri de bulabiliriz.
Önce fonksiyon argümanları, daha
sonra diğer değişkenleri sıralar.
Varsayılan (default) değişken
Eğer bir türev, integral veya diğer sembolik işlemlerde bir bağımsız değişken belirlenmemiş ise, MATLAB bir varsayılan
(default) değişken kullanır.
Varsayılan değişken, alfabetik olarak x e yakın olan değişken veya sembolik fonksiyonlar için fonksiyonun ilk giriş argümanı
olarak belirlenir.
Varsayılan olarak seçilen değişkeni bulmak için symvar(f,1) komutu kullanılır.
>> syms s t
>> f = s + t;
>> symvar(f, 1)
ans =
t
>> syms sx tx
>> f = sx + tx;
>> symvar(f, 1)
ans =
tx
collect komutu
collect(S) VEYA
collect(S, variable_name)
Değişkenleri kuvvetlerine göre gruplar.
>> syms x y
>> S=(x^2+x-exp(x))*(x+3)
S=
(x + 3)*(x - exp(x) + x^2)
>> F = collect(S)
F=
x^3 + 4*x^2 + (3 - exp(x))*x - 3*exp(x)
>> T=(2*x^2+y^2)*(x+y^2+3)
T=
(2*x^2 + y^2)*(y^2 + x + 3)
>> F = collect(T)
F=
2*x^3 + (2*y^2 + 6)*x^2 + y^2*x + y^2*(y^2 + 3)
>> H=collect(T,y)
H=
y^4 + (2*x^2 + x + 3)*y^2 + 2*x^2*(x + 3)
expand komutu
Toplamların çarpımını, çarpımların toplamı olarak yazar.
Ayrıca, örneğin trigonometrik ifadeleri, trigonometrik özdeşliklere
göre parçalama gibi işlevi de vardır.
expand(S)
>> syms a x y
>> S=(x+5)*(x-a)*(x+4)
S=
-(a - x)*(x + 4)*(x + 5)
>> T=expand(S)
T=
20*x - 20*a - 9*a*x - a*x^2 + 9*x^2 + x^3
>> expand(sin(x-y))
ans =
cos(y)*sin(x) - cos(x)*sin(y)
>> syms x
>> f = (x ^2- 1)*(x^4 + x^3 + x^2 + x + 1)*(x^4 - x^3 + x^2 - x + 1);
>> expand(f)
ans =
x^10 - 1
factor komutu
factor(S)
Çarpanlarına ayırma yapar.
>> syms x y
>> factor(x^3-y^3)
ans =
(x - y)*(x^2 + x*y + y^2)
>> syms x
>> g = x^3 + 6*x^2 + 11*x + 6;
>> factor(g)
ans =
(x + 3)*(x + 2)*(x + 1)
>> syms a b
>> factor([a^2 - b^2, a^3 + b^3])
ans =
[ (a - b)*(a + b), (a + b)*(a^2 - a*b + b^2)]
simplfy ve simple komutları
Her iki komutta bir sembolik ifadeyi daha basit (daha sade) yazmak için kullanılır. simple
komutunun, ilerleyen sürümlerde kaldırılması düşünülmektedir.
>> syms x y
>> S=(x^2+5*x+6)/(x+2)
S=
(x^2 + 5*x + 6)/(x + 2)
>> simplify(S)
ans =
x+3
>> simplify((x+y)/(1/x+1/y))
ans =
x*y
>> S=(x^3-4*x^2+16*x)/(x^3+64)
S=
(x^3 - 4*x^2 + 16*x)/(x^3 + 64)
>> F = simple(S)
F=
x/(x + 4)
pretty komutu
Sembolik ifadeyi matematiksel yazılımına benzer formatta yazmak için kullanılır.
>> syms a b c x
>> S=sqrt(a*x^2 + b*x + c)
S=
(a*x^2 + b*x + c)^(1/2)
>> pretty(S)
>> syms a b c x
>> S = solve(a*x^2 + b*x + c , x);
>> pretty(S)
subs komutu
Bir sembolik değişkende bir sayısal değeri yerine yazmak için subs fonksiyonu kullanılabilir.
>> syms x
>> f = 2*x^2 - 3*x + 1;
>> subs(f, 1/3)
ans =
2/9
Çok değişkenli durum
>> syms x y
>> f = x^2*y + 5*x*sqrt(y);
>> subs(f, x, 3)
ans =
9*y + 15*y^(1/2)
subs fonksiyonu f nin orijinal ifadesini değiştirmez.
>> f
f=
2*x^2 - 3*x + 1
Bir değişken yerine başka bir değişken yazma
>> subs(f, y, x)
ans =
x^3 + 5*x^(3/2)
subs komutu
Bir polinomda bir matrisi yerine koyma
Eleman eleman yerine koyma (Matris kare
matris olmak zorunda değil)
Matris anlamda yerine koyma (Matris kare
matris olmalıdır.)
>> syms x
>> f = x^3 - 15*x^2 - 24*x + 350;
>> A = [1 2 3; 4 5 6];
>> subs(f,A)
ans =
[ 312, 250, 170]
[ 78, -20, -118]
>> syms x
>> f = x^3 - 15*x^2 - 24*x + 350;
>> A = magic(3)
A=
8 1 6
3 5 7
4 9 2
>> b = sym2poly(f)
b=
1 -15 -24 350
>> A^3 - 15*A^2 - 24*A + 350*eye(3)
ans =
-10 0 0
0 -10 0
0 0 -10
VEYA
>> polyvalm(b,A)
Elemanter Fonksiyonlar Ve Cebirsel İşlemler
Double türlü değişkenler için tanımlı elemanter fonksiyonlar (Trigonometrik:sin,cos,tan,cotan,sec,csc;ters
trigonometrik fonksiyonlar:asin,acos,…; hiperbolik fonksiyonlar:sinh,cosh,…; üstel ve logaritmik
fonksiyonlar:exp, log) sembolik değişkenler için de tanımlıdır. Benzer biçimde aritmetik operatörler (+,-,*,/)
aynı işlevlere sahiptirler:
>>
>>
>>
>>
>>
>>
>>
syms x
f=sin(x);
g=cos(x)
f+g ans =
f*g ans =
f-g ans =
f/g ans =
sin(x)+cos(x)
sin(x)*cos(x)
sin(x)-cos(x)
sin(x)/cos(x)
Elemanter Fonksiyonlar Ve Cebirsel İşlemler
Double türlü değişkenler için tanımlı elemanter fonksiyonlar (Trigonometrik:sin,cos,tan,cotan,sec,csc;ters
trigonometrik fonksiyonlar:asin,acos,…; hiperbolik fonksiyonlar:sinh,cosh,…; üstel ve logaritmik
fonksiyonlar:exp, log) sembolik değişkenler için de tanımlıdır. Benzer biçimde aritmetik operatörler (+,-,*,/)
aynı işlevlere sahiptirler:
Denklem Çözme
Cebirsel Denklemler ve Denklem Sistemleri
Adi Diferensiyel Denklemler ve Denklem Sistemleri
Cebirsel Denklem Çözme
( f(x)=0 şeklindeki denklemler )
solve(S)
S bir sembolik ifade ise S deki sembolik değişken için S ifadesinin sıfır yerini bulur.
>> syms a b c x
>> S = a*x^2 + b*x + c;
>> solve(S)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
>> pretty(ans)
Cebirsel Denklem Çözme
( f(x)=0 şeklindeki denklemler )
Eğer özel bir değişken için denklemi çözmek istiyorsak, ilave bir argümanla değişkeni belirtmeliyiz.
solve(S,argüman)
>> syms a b c x
>> S = a*x^2 + b*x + c;
>> b=solve(S, b)
b=
-(a*x^2 + c)/x
Cebirsel Denklem Çözme
( f(x)=g(x) şeklindeki denklemler )
f(x) = g(x) şeklindeki denklemleri çözmek için "==" operatörünü kullanmalıyız.
>> syms x
>> s = solve(cos(2*x) + sin(x) == 1)
s=
0
pi/6
(5*pi)/6
k tamsayı olmak üzere bunların k*pi katları da birer
çözümdür. Bu çözümleri "MuPAD®" da görebiliriz.
Örnekler
>> syms x z
>> h=solve(exp(2*z)-5)
h =
log(5)/2
>> S=x^2-x-6
S=
x^2-x-6
>> k=solve(S)
k =
-2
3
Sembolik değişkenleri tanımlamadan, string olarak girilen bir
denklemde çözülebilir.
>> solve('cos(2*y)+3*sin(y)=2')
ans =
pi/2
pi/6
(5*pi)/6
>> tsonuc=solve('4*t*h^2+20*t-5*g')
tsonuc =
(5*g)/(4*h^2+20)
Varsayılan değişkene (burada t)
göre çözüldü.
double komutu
Sembolik bir değeri, double değere dönüştürmek için kullanılabilir.
>> solve('cos(2*y)+3*sin(y)=2')
ans =
pi/2
pi/6
(5*pi)/6
>> double(ans)
ans =
1.5708
0.5236
2.6180
Cebirsel Denklem Sistemi Çözme
solve komutu cebirsel denklem sistemlerini çözmek için de kullanılabilir.
solve(eq1, eq2,…, eqn)
VEYA
>> syms x y t
VEYA
>> S=10*x+12*y+16*t;
>> [xt yt]=solve(S,'5*x-y=13*t')
xt =
2*t
yt =
-3*t
solve(eq1, eq2,…, eqn, var1, var2 ,…, varn)
>> syms x y t
>> [xt yt]=solve(10*x+12*y+16*t=0, '5*x-y=13*t')
xt =
2*t
yt =
-3*t
>> syms x y t
>> [tx ty]=solve('10*x+12*y+16*t=0','5*x-y=13*t',y,t)
tx =
-(3*x)/2
ty =
x/2
Cebirsel Denklem Sistemi Çözme
>> syms x y t
>> S=10*x+12*y+16*t;
>> AN=solve(S,'5*x-y=13*t')
AN =
x: [1x1 sym]
y: [1x1 sym]
>> AN.x
ans =
2*t
>> AN.y
ans =
-3*t
Örnek
𝑥−2
2
+ 𝑦−4
2
= 𝑅2 çemberi ile 𝑦 = 𝑥/2 + 1 doğrusunun kesim noktasını bulunuz.
>> syms x y R
>> [xc,yc]=solve('(x-2)^2+(y-4)^2=R^2','y=x/2+1')
xc =
((4*R^2)/5 - 64/25)^(1/2) + 14/5
14/5 - ((4*R^2)/5 - 64/25)^(1/2)
yc =
((4*R^2)/5 - 64/25)^(1/2)/2 + 12/5
12/5 - ((4*R^2)/5 - 64/25)^(1/2)/2
>> pretty(xc)
>> pretty(yc)
Diferensiyel Denklem Çözme
Adi diferensiyel denklemleri sembolik olarak çözmek için dsolve komutu kullanılır.
Denklemleri yazmak için iki alternatif vardır:
- Türev yerine D harfini kullanarak string olarak yazmak
- diff içeren sembolik ifadeler olarak yazmak
𝑦′ = 𝑦 + 1
syms y(x);
dsolve(diff(y) == y+ 1)
dsolve('Dy = y + 1','x')
Diferensiyel Denklem Çözme
Kullanım Şekli
Açıklama
S = dsolve(eqn)
eqn ile belirtilen adi diferensiyel denklemi çözer.
S = dsolve(eqn,cond)
cond ile verilen başlangıç veya sınır şartları altında, eqn
denklemini çözer.
[y1,...,yN] = dsolve(eqns)
eqns ile belirtilen adi diferensiyel denklem sistemlerini çözer.
[y1,...,yN] = dsolve(eqns,conds)
cond ile verilen başlangıç veya sınır şartları altında, eqns
denklem sistemini çözer.
Örnekler
𝑑𝑥
= −𝑎𝑥
𝑑𝑡
𝑑𝑓
= 𝑓 + sin 𝑡
𝑑𝑡
syms a x(t)
dsolve(diff(x) == -a*x)
syms f(t)
dsolve(diff(f) == f + sin(t))
𝑑𝑦
= 𝑎𝑦, 𝑦 0 = 𝑏
𝑑𝑡
syms a b y(t)
dsolve(diff(y) == a*y, y(0) == b)
𝑑2𝑦
𝜋
2
′
= −𝑎 𝑦, 𝑦 0 = 1, 𝑦
=0
𝑑𝑡 2
𝑎
syms a y(t)
Dy = diff(y);
dsolve(diff(y, 2) == -a^2*y, y(0) == 1, Dy(pi/a) == 0)
Örnekler
𝑥′ = 𝑦
𝑦 ′ = −𝑥
>> syms x(t) y(t)
>> z = dsolve(diff(x) == y, diff(y) == -x)
z =
y: [1x1 sym]
x: [1x1 sym]
>> z.x
ans =
C12*cos(t) + C11*sin(t)
>> z.y
ans =
C11*cos(t) - C12*sin(t)
Örnek (String olarak girme)
𝑦′
2
+ 𝑦2 = 1
>> dsolve('Dy^2 + y^2 == 1')
ans =
1
-1
cosh(C49 + t*i)
cosh(C45 - t*i)
>> dsolve('Dy^2 + y^2 == 1','s')
ans =
1
-1
cosh(C57 + s*i)
cosh(C53 - s*i)
Örnek (Yüksek Mertebeler)
𝑦 ′′ − 2𝑦 ′ − 3𝑦 = 0
>> dsolve('D2y-2*Dy-3*y=0')
ans =
C3*exp(-t) + C2*exp(3*t)
>> syms y(x)
>> dsolve(diff(y, 2) -2*diff(y,1)-3*y==0)
ans =
C9*exp(-x) + C8*exp(3*x)
Örnek (Yüksek Mertebeler ve Başlangıç Değer Pro.)
𝑦 ′′ − 2𝑦 ′ − 3𝑦 = 𝑥 sin 𝑥 , 𝑦 0 = 0, 𝑦 ′ 0 = 1
>> dsolve('D2y-2*Dy-3*y=x*sin(x)','y(0)=0,Dy(0)=1','x')
ans =
(53*exp(3*x))/200 - exp(-x)/8 - (7*cos(x))/50 - sin(x)/50 +
(x*cos(x))/10 - (x*sin(x))/5
>> syms y(x)
>> Dy = diff(y);
>> dsolve(diff(y, 2) -2*diff(y,1)-3*y==x*sin(x),[y(0)==0,Dy(0)==1])
ans =
(53*exp(3*x))/200 - exp(-x)/8 - (7*cos(x))/50 - sin(x)/50 + (x*cos(x))/10 (x*sin(x))/5
Örnek (Yüksek Mertebeler ve Başlangıç Değer Pro.)
𝑑3𝑢
′ 0 = −1, 𝑢 ′′ 0 = 𝜋
=
𝑢,
𝑢
0
=
1,
𝑢
𝑑𝑥 3
>> syms u(x)
>> Du = diff(u);
>> D2u = diff(u, 2);
>> u(x) = dsolve(diff(u, 3) == u, u(0) == 1, Du(0) == -1, D2u(0) == pi)
u(x) =
(pi*exp(x))/3 - exp(-x/2)*cos((3^(1/2)*x)/2)*(pi/3 - 1) -...
(3^(1/2)*exp(-x/2)*sin((3^(1/2)*x)/2)*(pi + 1))/3
Örnek (Sınır Değer Problemleri - Dikkat)
𝑢′′ + 𝑢 = 0, 𝑢 0 = −1, 𝑢 𝜋/2 = 1
>> dsolve(diff(u,2)+u==0,u(0)==-1,u(pi/2)==1)
ans =
sin(x) - cos(x)
𝑢′′ + 𝑢 = 0, 𝑢 0 = −1, 𝑢′ 𝜋 = 1
>> syms u(x)
>> Du=diff(u,1);
>> dsolve(diff(u,2)+u==0,u(0)==-1,Du(pi)==1)
ans =
- cos(x) - sin(x)
𝑢′′ + 𝑢 = 0, 𝑢 0 = −1, 𝑢′ 𝜋/2 = 1
>> dsolve(diff(u,2)+u==0,u(0)==-1,Du(pi/2)==1)
ans =
C51*sin(x) - cos(x)
Örnek (Denklem Sistemi)
𝑓 ′ = 3𝑓 + 4𝑔,
𝑔′ = −4𝑓 + 3𝑔,
𝑓 0 =0
𝑔 0 =1
>> syms f(t) g(t)
>> [f(t), g(t)] = dsolve(diff(f) == 3*f + 4*g,...
diff(g) == -4*f + 3*g, f(0) == 0, g(0) == 1)
f(t) =
sin(4*t)*exp(3*t)
g(t) =
cos(4*t)*exp(3*t)
Örnek (Denklem Sistemi)
𝑥 ′ = 𝑥 + 2𝑦 + 1
⇒ 𝑌 ′ = 𝐴𝑌 + 𝐵,
′
𝑦 = −𝑥 + 𝑦 + 𝑡
𝑥
1
1 2
𝑌 = 𝑦 ,𝐴 =
,𝐵 =
𝑡
−1 1
>> syms x(t) y(t)
>> A = [1 2; -1 1];
>> B = [1; t];
>> Y = [x; y];
>>S = dsolve(diff(Y) == A*Y + B);
>>x = S.x
x =
2^(1/2)*exp(t)*cos(2^(1/2)*t)*(C2 + (exp(-t)*(4*sin(2^(1/2)*t) +...
2^(1/2)*cos(2^(1/2)*t) + 6*t*sin(2^(1/2)*t) +...
6*2^(1/2)*t*cos(2^(1/2)*t)))/18) +...
2^(1/2)*exp(t)*sin(2^(1/2)*t)*(C1 - (exp(-t)*(4*cos(2^(1/2)*t) -...
2^(1/2)*sin(2^(1/2)*t) +...
6*t*cos(2^(1/2)*t) - 6*2^(1/2)*t*sin(2^(1/2)*t)))/18)
>>y = S.y
y =
exp(t)*cos(2^(1/2)*t)*(C1 - (exp(-t)*(4*cos(2^(1/2)*t) -...
2^(1/2)*sin(2^(1/2)*t) + 6*t*cos(2^(1/2)*t) -...
6*2^(1/2)*t*sin(2^(1/2)*t)))/18) - exp(t)*sin(2^(1/2)*t)*(C2 +...
(exp(-t)*(4*sin(2^(1/2)*t) + 2^(1/2)*cos(2^(1/2)*t) +...
6*t*sin(2^(1/2)*t) + 6*2^(1/2)*t*cos(2^(1/2)*t)))/18)
odeToVectorField
Yüksek mertebeden diferensiyel denklemleri, birinci mertebeden diferensiyel denklem sistemlerine
dönüştürmek için kullanılır.
V = odeToVectorField(eqn1,...,eqnN)
VEYA
[V,Y] =odeToVectorField(eqn1,...,eqnN)
𝑡 3𝑦
5
+ 2𝑡𝑦
4
+ 𝑦 ′′ + 𝑦 2 = −3𝑡
>> syms y(t)
>> V = odeToVectorField(t^3*diff(y, 5) + 2*t*diff(y, 4) + diff(y, 2) + y^2 == -3*t)
V =
𝑦1′ = 𝑦2
Y[2]
𝑦2′ = 𝑦3
Y[3]
𝑦3′ = 𝑦4
Y[4]
𝑦4′ = 𝑦5
Y[5]
𝑦5′ = − 3𝑡 + 𝑦12 + 2𝑡𝑦5 + 𝑦3 /𝑡 3
-(3*t + Y[1]^2 + 2*t*Y[5] + Y[3])/t^3
∞
𝑒 −𝑠𝑡 𝑓 𝑡 𝑑𝑡
𝐹 𝑠 =
0
LAPLACE DÖNÜŞÜMÜ
𝐿−1
𝐹 𝑠
1
=𝑓 𝑡 =
2𝜋𝑖
𝑐+𝑖∞
𝑓 𝑠 𝑒 𝑠𝑡 𝑑𝑠
𝑐−𝑖∞
laplace komutu
laplace(f) VEYA laplace(f,var_d) VEYA laplace(f,var,var_d)
>> syms t
>> laplace(t^2)
ans =
2/s^3
>> syms t r
>> laplace(t^2,r)
ans =
2/r^3
>> syms t s
>> laplace(t^2,s)
ans =
2/s^3
𝐿 𝑒 𝑎𝑡 =?
𝐿 𝑒𝑎
𝑡−2
=?
>> syms t a s
>> laplace(exp(a*t),t,s)
ans =
-1/(a - s)
>> laplace(exp(a*(t-2)),t,s)
ans =
-exp(-2*a)/(a - s)
𝐿 sin 𝑎𝑡
𝐿 cos 𝑎𝑡
=?
>>laplace(sin(a*t))
ans =
a/(a^2 + s^2)
=?
>>laplace(cos(a*t))
ans =
s/(a^2 + s^2)
>> syms x r
>> laplace(x^2,x,r)
ans =
2/r^3
Örnekler
𝐿 1 =?
𝐿 5 =?
>> syms t
>> laplace(t^0)
ans =
1/s
𝐿 sin 3𝑡 + cos 5𝑡
>> syms t
>> laplace(sym(5))
ans =
5/s
=?
>> laplace(sin(3*t)+cos(5*t))
ans =
s/(s^2 + 25) + 3/(s^2 + 9)
𝐿 𝑡𝑒 𝑡 cosh 𝑡 + 5
=?
>> laplace(t*exp(t)*cosh(t+5))
ans =
(((s*exp(5))/2 + (exp(-5)*(s - 2))/2)*(2*s - 2))/((s 1)^2 - 1)^2 - (exp(-5)/2 + exp(5)/2)/((s - 1)^2 - 1)
𝐿 e2𝑡 sin 𝑡 − 3
=?
>> laplace(exp(2*t)*sin(t-3), t, s)
ans =
cos(3)/((s - 2)^2 + 1) - (sin(3)*(s - 2))/((s
- 2)^2 + 1)
𝐿 𝑡𝑒 2𝑡 =?
>> laplace(t*exp(2*t), t, s)
ans =
1/(s - 2)^2
Örnekler
Dirac ve ve Heaviside fonksiyonlarının Laplace dönüşümleri
>> syms t s
>> >> laplace(dirac(t))
ans =
1
>> laplace(heaviside(t))
ans =
1/s
Açık fonksiyonun Laplace dönüşümü
>> syms f(t) s
>> F = laplace(f, t, s)
F(s) =
laplace(f(t), t, s)
>> syms t s
>> laplace(dirac(t - 3), t, s)
ans =
exp(-3*s)
>> laplace(heaviside(t - pi), t, s)
ans =
exp(-pi*s)/s
Türevin Laplace dönüşümü
>> syms f(t) s
>> laplace(diff(f(t), t), t, s)
ans =
s*laplace(f(t), t, s) - f(0)
Ters Laplace (ilaplace)
laplace(f) VEYA laplace(f,var_d) VEYA laplace(f,var,var_d)
>> syms s
>> ilaplace(1/(s^2+s))
ans =
1 - exp(-t)
>> syms s t
>> ilaplace(1, s, t)
ans =
dirac(t)
>> syms s
>> ilaplace(10/(s^2*(s+2)))
ans =
5*t + (5*exp(-2*t))/2 - 5/2
>> syms s t
>> ilaplace(exp(-2*s)/(s^2 + 1) + s/(s^3 + 1), s, t)
ans =
heaviside(t - 2)*sin(t - 2) - exp(-t)/3 +
(exp(t/2)*(cos((3^(1/2)*t)/2) +
3^(1/2)*sin((3^(1/2)*t)/2)))/3
Diferensiyel Denklemlerin Laplace Dönüşümü ile
çözümü
𝑚𝑦 ′′ + 𝑐𝑦 ′ + 𝑘𝑦 = 𝑓 𝑡 yay salınım denklemini dikkate alalım.
Serbest Sürtünmesiz Hareket
𝑚𝑦 ′′ + 𝑘𝑦 = 0
𝑚 = 1, 𝑘 = 100 için denklemi
Laplace yöntemiyle çözünüz.
Grafiğini çiziniz.
Serbest Sürtünmeli Hareket
𝑚𝑦 ′′ + 𝑐𝑦 ′ + 𝑘𝑦 = 0
𝑚 = 1, 𝑐 = 2, 𝑘 = 10 için
denklemi Laplace yöntemiyle
çözünüz. Grafiğini çiziniz.
Zorlanmış Hareket
𝑚𝑦 ′′ + 𝑐𝑦 ′ + 𝑘𝑦 = sin2t
𝑚 = 1, 𝑐 = 2, 𝑘 = 10 için
denklemi Laplace yöntemiyle
çözünüz. Grafiğini çiziniz.
Download