Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-11-11, 12:16   #1
未注册
游客
 
帖子: n/a
默认 [求助]关于 solve() 的疑问!

为什么同一个方程把 0.3 写成 3/10 和 0.3 解出来的结果不一样,而且第一个ans数据类型是结构体,里边还出现了虚数单位 i !! 这是怎么回事?
>> solve('10/3+2*x^3-3*x^2','x')

ans =

-1/6*(153+18*70^(1/2))^(1/3)-3/2/(153+18*70^(1/2))^(1/3)+1/2
1/12*(153+18*70^(1/2))^(1/3)+3/4/(153+18*70^(1/2))^(1/3)+1/2+1/2*i*3^(1/2)*(-1/6*(153+18*70^(1/2))^(1/3)+3/2/(153+18*70^(1/2))^(1/3))
1/12*(153+18*70^(1/2))^(1/3)+3/4/(153+18*70^(1/2))^(1/3)+1/2-1/2*i*3^(1/2)*(-1/6*(153+18*70^(1/2))^(1/3)+3/2/(153+18*70^(1/2))^(1/3))


>> solve('0.3+2*x^3-3*x^2','x')

ans =

-.28951924828608542762680297014191
.36325749109056761357673427729897
1.4262617571955178140500686928429
==================
%=====定义一个函数=====
function U = E_U( E,x)
U = U=E+2*x.^3-3*x.^2;
%========
>>E=0.3;
>>syms x;
>> y=E_U(E,x)

y =

3/10+2*x^3-3*x^2
>>solve(y)
就得到上面的结果,用solve(0.3+2*x^3-3*x^2)正常。

我要在一个循环里边用到 solve(y) 没法一个个改成小数,请问怎么办。
>> solve('10/3+2*x^3-3*x^2','x') 也一样的问题
  回复时引用此帖
旧 2008-11-13, 12:07   #2
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
默认 回复: [求助]关于 solve() 的疑问!

sx=solve('10/3+2*x^3-3*x^2','x');
eval(sx)
pslpsl 当前离线   回复时引用此帖
旧 2008-11-14, 05:39   #3
halfuder
初级会员
 
注册日期: 2008-11-03
年龄: 38
帖子: 7
声望力: 0
halfuder 正向着好的方向发展
默认 回复: [求助]关于 solve() 的疑问!

10\3的问题???是不是涉及到数据类型了啊?
halfuder 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[分享]给大家传一个图像空间变换和直方图变换的数学推导 johnny8088 MATLAB论坛 0 2009-01-31 03:26
solve错在哪里?? 求助!!! ldd00 MATLAB论坛 4 2008-12-01 11:22
[求助]matlab编程 huanghuan MATLAB论坛 0 2008-11-23 21:42
[求助]电力系统机组启停优化算法程序 woshi523de MATLAB论坛 1 2008-11-18 08:12
[求助]在SIMULINK里,如何将inegrator上方的箭头移到下面去 yijianmei MATLAB论坛 1 2008-07-24 10:15


所有时间均为北京时间。现在的时间是 22:25


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