TDF 发表于 2011-8-26 16:17

为什么用matlab里的fplot函数画这个图画不出来。

本帖最后由 TDF 于 2011-8-26 16:17 编辑

fplot(@(x) (.40000000000000000000000000000000x-1*x^2*(153130000.*x^7+7200000.*x^6+128590588.*x^5-1042800000.*x^4*1+18155520.*x^4+442224000.*x^3*1-1373422025.*x^3-613788000.*x^2*1+40050000.*x^2-444125000.*x-1237500000.*x*1+1110000000.*1)^2/(54933120.*x^5-692013260.*x^6-186265991563.*x^4-48614675000.*x^2+229500000.*x^3+3800000000.+15381150000.*x^8)^2+.10000000000000000000000000000000x-1*(252810000.*x^8+16320000.*x^7-250351044.*x^6+15211872.*x^5+86400000.*x^5*1+21590628000.*x^4*1-2511119625.*x^4-17595000.*x^3+21600000.*x^3*1-80711825000.*x^2*1+165000000.*x^2+5000000000.*1)^2/(54933120.*x^5-692013260.*x^6-186265991563.*x^4-48614675000.*x^2+229500000.*x^3+3800000000.+15381150000.*x^8)^2)^(1/2)/1,)
老是提示错误
Error: Missing MATLAB operator.


我用同样的命令画化了十几个同样类型的图都能画出来,可是画到这个时就不行了。我重启MATLAB,重新计算,重新试了好多遍,别的图都可以,就这个图老是提示这个错误。这是为什么呢?在下刚接触MATLAB,还请高人指教啊。
感激不尽!

ChaChing 发表于 2011-8-27 01:32

那麼长的式子, 真懒得帮检!
建议分段或简化下, 一步步试试看! 若是我也是如此
等待LZ分享成果!

TDF 发表于 2011-8-27 09:09

实际上式子并没有错,可能是程序的问题吧。我把变量名一改。图就画出来了,我也搞不懂是什么原因。

ChaChing 发表于 2011-8-27 11:49

本帖最后由 ChaChing 于 2011-8-27 11:50 编辑

TDF 发表于 2011-8-27 09:09 http://www.chinavib.com/static/image/common/back.gif
...把变量名一改。图就画出来了...版本? 改成什麼样?

TDF 发表于 2011-8-27 15:15

fplot(@(e) (.40000000000000000000000000000000e-1*e^2*(153130000.*e^7+7200000.*e^6+128590588.*e^5-1042800000.*e^4*1+18155520.*e^4+442224000.*e^3*1-1373422025.*e^3-613788000.*e^2*1+40050000.*e^2-444125000.*e-1237500000.*e*1+1110000000.*1)^2/(54933120.*e^5-692013260.*e^6-186265991563.*e^4-48614675000.*e^2+229500000.*e^3+3800000000.+15381150000.*e^8)^2+.10000000000000000000000000000000e-1*(252810000.*e^8+16320000.*e^7-250351044.*e^6+15211872.*e^5+86400000.*e^5*1+21590628000.*e^4*1-2511119625.*e^4-17595000.*e^3+21600000.*e^3*1-80711825000.*e^2*1+165000000.*e^2+5000000000.*1)^2/(54933120.*e^5-692013260.*e^6-186265991563.*e^4-48614675000.*e^2+229500000.*e^3+3800000000.+15381150000.*e^8)^2)^(1/2)/1,)
得到下面的图:

我就是把变量名x变成了e,就出来了。其他的几个图都不用改的。但是一换回 x,就没画出来。而其他的几个式子不论怎样改都能画出来。至于具体原因我自己也搞不清楚。可能是软件的原因?

ChaChing 发表于 2011-8-28 21:03

本帖最后由 ChaChing 于 2011-8-28 21:04 编辑

回复 1 # TDF 的帖子

使用LZ 1F的式子, 我的R2009a版本会报错
Error: Unexpected MATLAB expression.
细看LZ的式子, 有两个地方係数与符号(x)间并无乘号(*) fplot(@(x) (.4*x-1*x^2*(153130000.*x^7+7200000.*x^6+128590588.*x^5-1042800000.*x^4*1+18155520.*x^4+442224000.*x^3*1-1373422025.*x^3-613788000.*x^2*1+40050000.*x^2-444125000.*x-1237500000.*x*1+1110000000.*1)^2/(54933120.*x^5-692013260.*x^6-186265991563.*x^4-48614675000.*x^2+229500000.*x^3+3800000000.+15381150000.*x^8)^2+.1*x-1*(252810000.*x^8+16320000.*x^7-250351044.*x^6+15211872.*x^5+86400000.*x^5*1+21590628000.*x^4*1-2511119625.*x^4-17595000.*x^3+21600000.*x^3*1-80711825000.*x^2*1+165000000.*x^2+5000000000.*1)^2/(54933120.*x^5-692013260.*x^6-186265991563.*x^4-48614675000.*x^2+229500000.*x^3+3800000000.+15381150000.*x^8)^2)^(1/2)/1,)出来的图如下


ChaChing 发表于 2011-8-28 21:24

回复 5 # TDF 的帖子

至於LZ把变量名x变成了e, 就可输出图了, 那是画不同函数的图
本来.4x-1*x^2*...的式子变成.4e-1*e^2*..., 因本来就少个乘号(*), 变成了数字次方的意义了
若把那些该有的乘号补齐, 一样会画出正确的图, 如6F
试试下列代码, LZ应该就明瞭feval(@(e) .4e-1,0)      % =0.04
feval(@(e) .4*e-1,0)   % =0.4*(0)-1
feval(@(e) .4e-1*e^2,0)% =0.04*(0)^2
feval(@(e) .4e-1*e^2,1)% =0.04*(1)^2

ChaChing 发表于 2011-8-28 21:48

本帖最后由 ChaChing 于 2011-8-28 21:53 编辑

还有使用习惯不同, 个人比较喜欢整理下, LZ参考下
fplot与ezplot两者的不同, 藉由LZ的帖子, 个人著实练习了下也学习一些
syms x
dd=(54933120.*x^5-692013260.*x^6-186265991563.*x^4-48614675000.*x^2+229500000.*x^3+3800000000.+15381150000.*x^8)^2;
nn1= (153130000.*x^7+7200000.*x^6+128590588.*x^5 -1042800000.*x^4*1+18155520.*x^4 ...
            +442224000.*x^3*1-1373422025.*x^3 -613788000.*x^2*1+40050000.*x^2 -444125000.*x-1237500000.*x*1+1110000000.*1)^2;
nn2=(252810000.*x^8+16320000.*x^7-250351044.*x^6 +15211872.*x^5+86400000.*x^5*1 ...
            +21590628000.*x^4*1-2511119625.*x^4-17595000.*x^3+21600000.*x^3*1-80711825000.*x^2*1+165000000.*x^2+5000000000.*1)^2;
ff1=(.4*x-1*x^2*nn1/dd +.1*x-1*nn2/dd)^(1/2)/1;
ezplot(ff1,,1);

注意ezplot与fplot的图好像有稍许不同, 猜测係画图的点数多寡造成, 没时间细究, LZ可以试试差异

TDF 发表于 2011-8-29 16:02

汗,为您的敬业精神敬佩啊!吸取了教训。多谢多谢
页: [1]
查看完整版本: 为什么用matlab里的fplot函数画这个图画不出来。