MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 求助:怎样解方程的数值解?? (https://www.labfans.com/bbs/showthread.php?t=12424)

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)


所有时间均为北京时间。现在的时间是 12:54

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.