非线性微分方程的求解方程组-g*sinθ-k*v^2=dv/dt___(1)g*cosθ=v*dθ/dt________(2)初值条件v=v0θ=θ0g和k均为常数解析法或数值法均可,数值解法最好给出matlab或C语言程序
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/28 07:46:33
非线性微分方程的求解方程组-g*sinθ-k*v^2=dv/dt___(1)g*cosθ=v*dθ/dt________(2)初值条件v=v0θ=θ0g和k均为常数解析法或数值法均可,数值解法最好给出matlab或C语言程序
非线性微分方程的求解
方程组
-g*sinθ-k*v^2=dv/dt___(1)
g*cosθ=v*dθ/dt________(2)
初值条件
v=v0
θ=θ0
g和k均为常数
解析法或数值法均可,数值解法最好给出matlab或C语言程序
非线性微分方程的求解方程组-g*sinθ-k*v^2=dv/dt___(1)g*cosθ=v*dθ/dt________(2)初值条件v=v0θ=θ0g和k均为常数解析法或数值法均可,数值解法最好给出matlab或C语言程序
知道dsolve函数就好求常微分方程或方程组了:)
>> s=dsolve('Dv=-k*v-g*sin(a),Da=g*cos(a)/v','v(0)=v0,a(0)=a0');
>> a=s.a
a =(-g*cos(a0)+a0*v0*k)/v0/k+g*cos(a0)/v0/k*exp(k*t)
>> v=s.v
v =1/cos(a0)*v0/exp(k*t)*cos((-g*cos(a0)+a0*v0*k)/v0/k+g*cos(a0)/v0/k*exp(k*t))
>>
知道dsolve函数就好求常微分方程或方程组了:)
>> s=dsolve('Dv=-k*v-g*sin(a),Da=g*cos(a)/v','v(0)=v0,a(0)=a0');
>> a=s.a
a =(-g*cos(a0)+a0*v0*k)/v0/k+g*cos(a0)/v0/k*exp(k*t)
>> v=s.v
v =1/cos(a0)*...
全部展开
知道dsolve函数就好求常微分方程或方程组了:)
>> s=dsolve('Dv=-k*v-g*sin(a),Da=g*cos(a)/v','v(0)=v0,a(0)=a0');
>> a=s.a
a =(-g*cos(a0)+a0*v0*k)/v0/k+g*cos(a0)/v0/k*exp(k*t)
>> v=s.v
v =1/cos(a0)*v0/exp(k*t)*cos((-g*cos(a0)+a0*v0*k)/v0/k+g*cos(a0)/v0/k*exp(k*t))
>>
应该室这样?
收起
把初始值和常数给出,用数值解法。
function hh
[t,y]=ode45(@fun,[1,2],[10 10])
plot(t,y)
function yhat=fun(t,x)
theta=x(1);v=x(2);g=9.8;k=0.022;
yhat=[g*cos(theta)/v;-g*sin(theta)-k*v^2];