mathematica中对定义的函数作运算

举个简单的例子:我要解一个微分方程组{dx1/dt=x1+H,dx2/dt=x1*x2-H}其中H=x1^2+x1*x2,而x1,x2都是t的函数。我要先定义H,然后在用... 举个简单的例子:我要解一个微分方程组{dx1/dt=x1+H, dx2/dt=x1*x2-H} 其中H=x1^2+x1*x2,而x1,x2都是t的函数。我要先定义H,然后在用DSolve解这个方程组的时候会引用H。求问怎样实现? 展开
wsjljlsw
2012-10-20 · TA获得超过661个赞
知道答主
回答量:266
采纳率:0%
帮助的人:253万
展开全部
H = x1[t]^2 + x2[t]^2;
equ = {D[x1[t], t] == x1[t] + H, D[x2[t], t] == x1[t]*x2[t] - H};
sol = DSolve[equ, {x1, x2}, t]
但这样求不出来 这可能这方程组没有解析解

你可以尝试数值解法 带入x1 ,x2的初始值,在一定范围的t内求数值解 就是
H = x1[t]^2 + x2[t]^2;
equ = {D[x1[t], t] == x1[t] + H, D[x2[t], t] == x1[t]*x2[t] - H, x1[0] == -0.1, x2[0] == 0.1};
sol = NDSolve[equ, {x1, x2}, {t, 0, 5}]
Plot[{sol[[1, 1, 2]][t], sol[[1, 2, 2]][t]}, {t, 0,5}, PlotRange -> All]
这里假设 x1[0] == -0.1, x2[0] == 0.1,并画出了t在[0,5]之间的值
你改变下初始条件 你可以看到这方程增长很快 经常趋向无穷大

望采纳!!
xzcyr
2012-10-20 · TA获得超过3399个赞
知道大有可为答主
回答量:1400
采纳率:100%
帮助的人:667万
展开全部
这样?:

h := x[t]^2 + x[t] y[t]
DSolve[{x'[t] == x[t] + h, y'[t] == x[t] y[t] - h}, {x[t], y[t]}, t]

不过你这个方程好像不能DSolve……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式