Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
游客
帖子: n/a
|
![]()
为什么同一个方程把 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') 也一样的问题 |
![]() |
![]() |
#2 |
普通会员
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20 ![]() ![]() |
![]()
sx=solve('10/3+2*x^3-3*x^2','x');
eval(sx) |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-11-03
年龄: 38
帖子: 7
声望力: 0 ![]() |
![]()
10\3的问题???是不是涉及到数据类型了啊?
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[分享]给大家传一个图像空间变换和直方图变换的数学推导 | 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 |