Re: [問題]NDSolve是否有轉換方程式的機制

看板Mathematica作者 (弱小豪)時間12年前 (2012/03/08 15:03), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

03/08 21:59, , 1F
h大的東西也在做振動嗎??
03/08 21:59, 1F

03/09 19:41, , 2F
這樣你都看得出來= =
03/09 19:41, 2F

03/09 21:02, , 3F
只是做的東西有點類似....
03/09 21:02, 3F
文章代碼(AID): #1FM5d3kZ (Mathematica)
文章代碼(AID): #1FM5d3kZ (Mathematica)