24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1714  |  回复: 9

xhw2211

金虫 (正式写手)

[求助] mathematica 编程求助

头一次用mathtematica编的程序,总是没有画出图形,不知道错在什么地方了,大牛看一下。

z1 = LaplaceTransform[Exp[-10*t - 5*t^2], t, s];
z2 = LaplaceTransform[(10 + 10*t)*Exp[-10*t - 5*t^2], t, s];
z3 = Simplify[z2];
equ1 = z1 + z3*y - z;
y1 = LaplaceTransform[7*Exp[-7*t], t, s];
y2 = LaplaceTransform[110*Exp[-110*t], t, s];
equ2 = y1*x + y2*z - y;
x1 = LaplaceTransform[120*Exp[-120*t], t, s];
equ3 = x1*y - x;
Solve[{equ1 == 0, equ2 == 0, equ3 == 0}, {x, y, z}]
m = InverseLaplaceTransform[z, s, t]
Plot[z, {t, 0, 1}, PlotStyle -> {Red, Thickness[0.008]}]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jjdg

版主 (知名作家)

优秀版主

你是用z,t作图的吧?
但你的z值是从哪里来?
努力学习!以正当途径!获得需要的知识!
2楼2011-07-25 17:51:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)

最后一句应该是lot[m, {t, 0, 1}, PlotStyle -> {Red, Thickness[0.008]}]
3楼2011-07-25 18:33:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)

晕,居然出现一个笑脸。最后一句话z应该是m,我写错了。
4楼2011-07-25 18:35:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

【答案】应助回帖

xhw2211(金币+5): 感谢你的热心,希望你能帮我把程序调通 2011-07-26 09:35:21
解方程得到的z没有代入到反拉普拉斯变换里去
加一句:
rr=Solve...
z=z/.rr
m=...
5楼2011-07-25 21:47:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)

我按你的方法改了程序,但是还是没有结果,感觉是不是拉普拉斯变换后解出的Z表达式太复杂,mathematica无法进行拉普拉斯反变换???下面是程序运行后得到的m
m={1/2 Sqrt[\[Pi]/5]
   InverseLaplaceTransform[(
   E^(5 + s + s^2/20) (1 - 840/((7 + s) (120 + s))) Erfc[(10 + s)/(
     2 Sqrt[5])])/(
   1 - 840/((7 + s) (120 + s)) - (
    110 (1 -
       1/2 E^(1/20 (10 + s)^2) Sqrt[\[Pi]/5]
         s Erfc[(10 + s)/(2 Sqrt[5])]))/(110 + s)), s, t]}
6楼2011-07-26 09:25:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)

对了,我用的mathematica是版本7
7楼2011-07-26 09:26:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)

把修改后的程序贴出来:
z1 = LaplaceTransform[Exp[-10*t - 5*t^2], t, s];
z2 = LaplaceTransform[(10 + 10*t)*Exp[-10*t - 5*t^2], t, s];
z3 = Simplify[z2];
equ1 = z1 + z3*y - z;
y1 = LaplaceTransform[7*Exp[-7*t], t, s];
y2 = LaplaceTransform[110*Exp[-110*t], t, s];
equ2 = y1*x + y2*z - y;
x1 = LaplaceTransform[120*Exp[-120*t], t, s];
equ3 = x1*y - x;
rr = Solve[{equ1 == 0, equ2 == 0, equ3 == 0}, {x, y, z}];
z = z /. rr;
m = InverseLaplaceTransform[z, s, t]
Plot[z, {t, 0, 1}, PlotStyle -> {Red, Thickness[0.008]}]
8楼2011-07-26 09:27:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)


jjdg(金币+1): 感谢参与 2011-07-30 14:50:08
下面这个是对的:
z1 = LaplaceTransform[Exp[-10*t - 5*t^2], t, s];
z2 = LaplaceTransform[(10 + 10*t)*Exp[-10*t - 5*t^2], t, s];
z3 = Simplify[z2];
equ1 = z1 + z3*y - z;
y1 = LaplaceTransform[7*Exp[-7*t], t, s];
y2 = LaplaceTransform[110*Exp[-110*t], t, s];
equ2 = y1*x + y2*z - y;
x1 = LaplaceTransform[120*Exp[-120*t], t, s];
equ3 = x1*y - x;
rr = Solve[{equ1 == 0, equ2 == 0, equ3 == 0}, {x, y, z}];
z = z /. rr;
m = InverseLaplaceTransform[z, s, t]
Plot[m, {t, 0, 1}, PlotStyle -> {Red, Thickness[0.008]}]
9楼2011-07-26 09:33:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xhw2211

金虫 (正式写手)

另外在程序中,我的理解是反拉普拉斯变换“InverseLaplaceTransform”这个函数是对字符变量进行处理,得到的是一个m关于t的表达式。其实我也不需要明晰的表达式,因此要是有反拉普拉斯变换的数值解法也是好的。我知道反拉普拉斯变换应该是一个积分运算,但是具体什么公式就不晓得了,如果有哪位达人知道反拉普拉斯变换的公式也可以应助阿,这样我可以尝试用matlab或mathematica的积分数值解法进行求解
10楼2011-07-26 09:46:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xhw2211 的主题更新
信息提示
请填处理意见