hongniang 发表于 2007-7-7 10:49

如何将syms格式转成数组

我最近用syms循环几次解方程组,(因为系数不是常数),得到几组根之后,不能用plot命令画图,为什么?能将syms格式的解转换成普通的数组吗?哪位高手能帮帮我?

[ 本帖最后由 eight 于 2007-7-9 21:47 编辑 ]

lxq 发表于 2007-7-7 11:39

每次赋给系数不同的值不就可以了
syms k
k=1(2,3)

花如月 发表于 2007-7-7 12:25

符号函数的绘图,是通过对符号变量赋值来完成的。参看funtoo工具的图像就知道了。给你一个例子:
S=solve('x^2+2*a*x=1')
a=0:2:100;
plot(a,-a+(a.^2+1).^(1/2))
顺便问个问题,下面的解看不懂啊
S=solve('sin(x)^2+2*a*cos(x)=1')

S =

                      1/2*pi
                     -1/2*pi
atan((-4*a^2+1)^(1/2),2*a)
atan(-(-4*a^2+1)^(1/2),2*a)
貌似atan有2个输入参数啊,可实际上只有一个。
>> atan(2,1)
??? Error using ==> atan
Too many input arguments.
那么解atan(-(-4*a^2+1)^(1/2),2*a)如何理解呢?只是好奇,对解方程不在行:@P

[ 本帖最后由 花如月 于 2007-7-7 12:26 编辑 ]

hongniang 发表于 2007-7-9 08:36

谢谢楼上两位,我解的方程组非常复杂,很难将未知数和系数写成y=f(a)的形式,我的方程类似为:a^2*y^3-a*x^2*y+2*y+5=0 (1)
                                 4*x*y^2+a^2*x^3-5*x*y+x=0(2)
要求a从1变化到50,绘出x-a和y-a的图。
我的方程比这个复杂多了,是个九元方程组,所以很难写成x=f(a),y=f(a)的形式,再请求大家帮忙。
另外楼上说的atan是反正切函数,具体我也没用过,不知道你说的如何理解,不好意思,我在这方面更是生手。

eight 发表于 2007-7-9 21:48

原帖由 hongniang 于 2007-7-7 10:49 发表 http://www.chinavib.com/forum/images/common/back.gif
我最近用syms循环几次解方程组,(因为系数不是常数),得到几组根之后,不能用plot命令画图,为什么?能将syms格式的解转换成普通的数组吗?哪位高手能帮帮我?

试试 subs 函数

花如月 发表于 2007-7-10 08:08

回复 #4 hongniang 的帖子

你的方程用下面的函数调用可以解决:
solve(eq1,eq2,...,eqn,var1,var2,...,varn)
如果是微分方程求解使用:
dsolve('eq1,eq2,...,eqn','cond1,cond2,...,cond2','Var')
每次调用的方程不超过12个都是可以解决的.
如果多于12个可以分开求,然后求交集

至于绘制出解随a从1到50的变化,用fpot完全可以实现。
个人认为题目不是特别棘手,多动手。函数调用出问题就
看help文档,里边有实例。

[ 本帖最后由 花如月 于 2007-7-10 08:11 编辑 ]
页: [1]
查看完整版本: 如何将syms格式转成数组