主要内容

이번역번역이지는최신내용을담고담고않습니다않습니다。최신최신내용을영문영문으로여기를클릭클릭

수치적으로2계미분방정식풀기

이예제는2계미분방정식을matlab®의수치수치적ODE45.를사용하여하여계산할수연립연립미분방정식으로하는방법을

고계상미분방정식을풀기위한적인접근법은이를1계연립미분방정식으로다음다음해당방정식을것것입니다입니다입니다입니다。이예제에서에서符号数学工具箱™를사용하여2계ode를1계연립ode로로변환변환변환변환변환그런다음matlab솔버ODE45.를사용하여하여연립연립방정식을

2계ode를1계연립ode ode로다시작성하기

다음2계미분방정식을다시작성하려면odetovectorfield.를사용하여

D. 2 y D. T. 2 = 1 - y 2 D. y D. T. - y

변수를변경합니다。미분하면1계연립미분방정식을얻을있도록 y T. = y 1 D. y D. T. = y 2 로둡니다。

D. y 1 D. T. = y 2 D. y 2 D. T. = - y 1 2 - 1 y 2 - y 1

Syms.y(t)[v] = odetovectorfield(差异(y,2)==(1  -  y ^ 2)* diff(y) -  y)
v =

y 2 - y 1 2 - 1 y 2 - y 1 [Y(2);- (y(1)^ 2 - 1)* y(2) - y(1)]

matlab함수생성하기

Matlab ode솔버는기호표현식을입력값으로받지않습니다。따라서matlab ode솔버를사용솔버를방정식을을전해당방정식방정식matlab함수로함수로해야합니다。v와함께matlabfunction.을입력값으로사용이1계연립미분방정식에서matlab함수를생성합니다。

m = matlabfunction(v,'vars',{'T''是'})
m =function_handle具有值:@(t,y)[y(2);-( y(1)。^ 2-1.0)。* y(2)-y(1)]

1계연립ode풀기

이방정식을풀려면생성된matlab함수를입력값사용용matlabODE45.수치솔버를호출하십시오。

sol = ode45(m,[0 20],[2 0]);

해플로팅하기

Linspace.를사용하여해를를플로팅구간구간구간[0,20]과로100포인트를생성하고포인트에대한해를계산계산합니다。

fplot(@(x)deval(sol,x,1),[0,20])

참고항목

|||