- 积分
- 14
- 注册时间
- 2009-5-7
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2009-11-12 21:47:48
|
显示全部楼层
来自 北京
其实我也遇见过和你一样的情况,当时我的处理方法是,自己定义函数,- (*解微分方程 y'[x] + p[x]*y[x] == q[x] *)
- jiewf[px_, qx_, bianliang_, canshu_] :=
- Module[{jieguo},
- jieguo =
- E^-\[Integral]px \[DifferentialD]bianliang (canshu + \[Integral]qx
- \!\(\*SuperscriptBox["\[ExponentialE]",
- RowBox[{"\[Integral]",
- RowBox[{"px",
- RowBox[{"\[DifferentialD]",
- "bianliang"}]}]}]]\) \[DifferentialD]bianliang)
- ];
- (*解微分方程 y''[x] + p*y'[x] + q*y[x] == 0 *)
- jiewf2[px_, qx_, bianliang_, genshu_, canshu_] :=
- Module[{jieguo, gen},
- gen = genshu;
- If[gen == -1,
- If[px^2 - 4 qx < 0, gen = 0];
- If[px^2 - 4 qx == 0, gen = 1];
- If[px^2 - 4 qx > 0, gen = 2];
- ];
- If[gen == 0,
- jieguo =
- E^(-(px/2)
- bianliang) (canshu[[1]]*Cos[Sqrt[4 qx - px^2]/2 bianliang] +
- canshu[[2]]*Sin[Sqrt[4 qx - px^2]/2 bianliang]),
- If[gen == 1,
- jieguo =
- E^(-(px/2) bianliang) (canshu[[1]] + canshu[[2]]*bianliang),
- If[gen == 2,
- jieguo =
- canshu[[1]]*E^(-((px - Sqrt[px^2 - 4 qx])/2) bianliang) +
- canshu[[2]]*E^(-((px + Sqrt[px^2 - 4 qx])/2) bianliang),
- jieguo =
- E^(-(px/2)
- bianliang) (canshu[[1]]*Cos[Sqrt[4 qx - px^2]/2 bianliang] +
- canshu[[2]]*Sin[Sqrt[4 qx - px^2]/2 bianliang])
- ]
- ]
- ];
- jieguo
- ]
复制代码 当然我的数学能力不是很强所以只写了两种简单情况,然后输入参数后就可以解出对于的微分方程的解了. |
|