PDA

查看完整版本 : [MATLAB数学相关] 求助:怎样解方程的数值解??


wwpwwp
2010-12-24, 11:35
各位大侠:
我在编写程序时需要接一个一元三次方程,我想得到它的数值解,但是用函数solve得到的总是符号解,该怎么办?用函数double也转换不过来。
我举个例子,有这样一个方程x^2-1=0;解应该是1、-1
我的程序如下:a=1;solve('a*x^2-1=0');
结果:ans =
1/a^(1/2)
-1/a^(1/2)
但是我想得到的是数值1和-1啊。
用函数double:double(ans)
结果出错:??? Error using ==> reshape
To RESHAPE the number of elements must not change.
Error in ==> sym.double at 37
X = reshape(X,siz);
请问这是什么原因呢?
因为我的方程是在一个循环中求解的,所以它的系数项都是一个一个的多项式(代表的是具体的数值),请问我怎么才能得到我想要的数值解。
谢谢了!!

lxfmails
2010-12-26, 23:02
用 vpa(ans)试一试,因为MATLAB默认solve函数求出的解是非数值的

abc886
2010-12-28, 09:05
It's easy. you can use "subs"
for example:

a=1;
x=solve('a*x^2-1=0');
x1=subs(x)