20wangz 发表于 2011-8-31 23:28:06

解方程组后如何通过循环得到各变量的表达式?

myList = {x, y}
sol = Solve[{x + y == a - b, 2 x - y == a + 3 b}, myList]
Do] = myList[] /. sol[], {N, 1, 2}]现在我想在解出方程组后通过循环得到myList中各个变量的表达式,为什么最后这个循环运行后没有反应?

不使用循环的情况下,我使用这样的语句是可以的:
myList[]=myList[]/.sol[]
myList[]=myList[]/.sol[]
这两句和上面的循环不是同样的意思吗?

guocong89 发表于 2011-9-1 02:45:02

因为Do返回Null,所以你看不见输出

Unless an explicit Return is used, the value returned by Do is Null.

guocong89 发表于 2011-9-1 02:46:50

想看见输出,加上PrintDo] = myList[] /. sol[]], {N, 1, 2}]

20wangz 发表于 2011-9-1 06:37:12

guocong89 发表于 2011-9-1 02:46 static/image/common/back.gif
想看见输出,加上Print

感谢版主!

使用您说的办法的确可以看到输出了。可是,这还是没有完全达到我的目标。我最终想得到的是x,y的表达式,以便用于下一步的计算。比如:x=(2 (a+b))/3
y=1/3 (a-5 b)在我的工作中,通常方程组和变量都比较多,在解完方程组以后,如果使用以下方式:x=x/.sol
y=y/.sol来获得x, y的表达式,非常麻烦。因此前面想使用一个循环来解决这个问题。现在您已经给解决了显示的问题,还请您继续指点,解决如何简单地获得各个变量的表达式的问题。

再次感谢!

chungyuandye 发表于 2011-9-1 09:02:53

本帖最后由 chungyuandye 于 2011-9-1 09:03 编辑

myList = {x, y};
ans = myList /.Solve[{x + y == a - b, 2 x - y == a + 3 b}, myList][];
MapThread
{x,y}

wushi111 发表于 2011-9-1 11:02:04

版主还是很尽心的。。。感谢。

20wangz 发表于 2011-9-1 22:31:48

chungyuandye 发表于 2011-9-1 09:02 static/image/common/back.gif


非常感谢您的回答!您的回答已经解决了我的问题。

不过,在我的工作中,x,y等变量的表达式都是极为复杂的,需要对它们先Together后Simplify的操作。请问该如何一次性地得到各个变量化简后的表达式呢?这些表达式我还要用于后续的计算的。

再次感谢!期望着您和其他各位高手的回答。

chungyuandye 发表于 2011-9-4 00:25:34

本帖最后由 chungyuandye 于 2011-9-4 00:29 编辑

20wangz 发表于 2011-9-1 22:31 static/image/common/back.gif
非常感谢您的回答!您的回答已经解决了我的问题。

不过,在我的工作中,x,y等变量的表达式都是极为复杂 ...
obj = Exp
Clear;
myList = {x, y};
ans1 = myList /.Simplify@Solve[{x + y == a - b, 2 x - y == a + 3 b}, myList][];
MapThread;
{x, y}
obj
Clear;
ans2 = Simplify@Solve[{x + y == a - b, 2 x - y == a + 3 b}, myList][];
ans2
obj /. ans2
將Simplify加在Solve之前即可!
不過因為後續還要計算,將Solve的結果指定給個變量並無太大的實質意義。
不如先將Solve計算的結果保留,要做計算時在利用Solve保留Rule的特性以Replace的方式作用到計算的對象上。

20wangz 发表于 2011-9-5 22:30:17

chungyuandye 发表于 2011-9-4 00:25 static/image/common/back.gif
將Simplify加在Solve之前即可!
不過因為後續還要計算,將Solve的結果指定給個變量並無太大的實質意義。
...

非常感谢!

我再好好体会一下,希望能就些找到一些规律性的东西。

再次感谢!
页: [1]
查看完整版本: 解方程组后如何通过循环得到各变量的表达式?