作者huangcooly (弱小豪)
看板Mathematica
標題Re: [問題]NDSolve是否有轉換方程式的機制
時間Thu Mar 8 15:03:28 2012
※ 引述《huangcooly (弱小豪)》之銘言:
: 我想要做的問題類似這樣
: 有一個球從空中掉落
: 空氣阻尼假設為a
: 掉落十公尺後掉落油中
: 油的阻尼為b
: 再掉落十公尺後又落入水中
: 水的阻尼為c
: 因此這樣會有三條不同的方程式在不同距離的時候
: Mx''[t]+()x'[t]=-Mg ( )為阻尼的意思
: 因此我在球NDSolve時大概如下
: NDSolve{Mx''[t]+()x'[t]==Mg,x[0]==0,x'[0]==0},{x,x'},{t,0,10}]
: 不知是否可以在做NDSolve在運作的途中去判別說
: -20<x<-10時,我就將方程式換為Mx''[t]+bx'[t]==Mg
: x<-20時,再將計算的方程式換為Mx''[t]+cx'[t]==Mg
: 不然我現在就只能手動轉換
: 先做一次空氣的
: 再去用if迴圈檢驗何時x<-10
: 再把求得的t帶到x[t]、x'[t],去求得落入水的的初始速度
: 這樣的笨方法了
我最近想到方法
我自己回答XDD
可以在解NDSlove裡面的方程式裡配合者Which的項目
如我問的這題即是
NDSolve{Mx''[t]+Which[0<=x[t]<10,a*x'[t],10<=x[t]<20,b*x'[t],20<=x[t],c*x'[t]
]==Mg,x[0]==0,x'[0]==0},{x,x'},{t,0,10}]
這樣他就會在x不同位置時,使用不同的damping ratio了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.16.43
推 qoodeva:h大的東西也在做振動嗎?? 03/08 21:59
→ huangcooly:這樣你都看得出來= = 03/09 19:41
推 qoodeva:只是做的東西有點類似.... 03/09 21:02