Re: [問題]NDSolve是否有轉換方程式的機制
※ 引述《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
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章