2016-06-11 13 views
1

中のx(t)に対する解決I以下のMATLABコードを持っている:MathWorks社のMATLAB

load = 130; 
fr = 5.56; 
mass = 2.5; 
len = 0.75; 
diam = 36/1000; 
pa = 135; 
pec = 100; 
mc = 1.28; 
md = 1.20; 
xec1 = 0.5; 
xmax = 0.5; 
xep2 = 0.025; 

syms t 
x = sym('x(t)'); 

p1 = pec*(xec1/x)^md; 
p2 = pa*((xmax-xep2)/(x+len-xep2))^mc; 

fp = (p1-p2)*pi*diam^2/4; 

eqn = simplify((fp - fr - load)/mass) == diff(diff(x)); 

私が本当に方程式の1つの側にあるため、ある(トン)×かを把握されて実行しようとするとしています私はx(t)のインスタンス(p1とp2)とx ''(t)を持っています。

理論的には、これを得るために理論的には、両側で2回積分する必要があります。しかし、これはどのようにMATLABを通じて達成可能ですか?私はここで間違ったアプローチをしていますか?

ちょっとした文脈では、eqnはニュートンの第2の法則であり、時間の位置の二次導関数の代わりに用いられ、p1とp2は力に変換される2つの圧力であるが、位置にも関係する。

編集:私は象徴的な答えを探しています。

+1

数値回答に興味があれば(すべての用語に値があります)、なぜあなたは象徴的に解決して、ode23を使用していませんか? – bla

+0

@rodrigocf:数値または象徴的な答えを探しているかどうかを明確にしてください。 – edwinksl

+0

@edwinksl私は象徴的な答えを探しています。 – rodrigocf

答えて

0

diffdsolveを使用してODEを象徴的に解決できます。これを行うためのコードは次のとおりです。この特定のODEのために

load = 130; 
fr = 5.56; 
mass = 2.5; 
len = 0.75; 
diam = 36/1000; 
pa = 135; 
pec = 100; 
mc = 1.28; 
md = 1.20; 
xec1 = 0.5; 
xmax = 0.5; 
xep2 = 0.025; 

syms x(t) 

p1 = pec*(xec1/x)^md; 
p2 = pa*((xmax-xep2)/(x+len-xep2))^mc; 
fp = (p1-p2)*pi*diam^2/4; 
xpp = (fp - fr - load)/mass; 

x(t) = dsolve(diff(x,t,2) == xpp); 
x(t) = simplify(x(t)); 
x(t) 

、MATLABはWarning: Explicit solution could not be found; implicit solution returned.を言うと、暗黙的な解決策は、特に有用ではありません警告を発します。適切な初期条件で数値的に解決することをお勧めします。

関連する問題