hanihaoma 发表于 2009-3-17 18:31

还是隐函数画图问题

原程序如下:         
         c1=a2*b1-a1*b2;
         c2=a2*b1-2*a1*b2;
         c3=si.*a2^2*f_vide.^2;
         d1=f_vide^2-f0.^2;
         d2=sqrt(b1^2*d1^2+4*si*f_vide^2*(c3-c2*d1));
         ro_fluid= 2*h*ro*(c2*d1-2*c3+a2*d2)/(pi*b*f0^2*a1*c1);
         derive_ro_fluid_f0=diff(log_ro_fluid,f0);
         derive_ro_fluid_si=diff(log_ro_fluid,si);
         derive_ro_fluid_h=diff(log_ro_fluid,h);
         derive_ro_fluid_b=diff(log_ro_fluid,b);
         derive_ro_fluid_L=diff(log_ro_fluid,L);
            figure(1)
            ezplot(derive_ro_fluid_f0)
想用ezplot 分别显示这五个变量 f0 si h b L 对 ro_fluid 的偏导数。但如果用ezplot(derive_ro_fluid_f0) 出现如下错误:
??? Error using ==> char
Cell elements must be character arrays.

Error in ==> C:\MATLAB6p5\toolbox\matlab\specgraph\ezplot.m
On line 138==>             fmsg = char(f);

Error in ==> C:\MATLAB6p5\toolbox\symbolic\@sym\ezplot.m
On line 47==>    ezplot(f.s);

Error in ==> C:\Documents and Settings\stagiaire\Bureau\simulation\sensibilite.m
On line 58==>            ezplot(derive_ro_fluid_f0)

当我 用 ezplot(‘derive_ro_fluid_f0’) 时 不报错,出图了 ,但是 对于五个变量的偏导数,出来的图是完全一样的,不知道是为什么。还请遇到过这种情况的朋友帮忙解释下。谢谢了

我看了 这里的隐函数总结帖,可是还是不能实现,还希望主人来帮帮忙。

[ 本帖最后由 ChaChing 于 2009-6-22 23:10 编辑 ]

sigma665 发表于 2009-3-18 16:51

你给的程序运行不了
没有定义

hanihaoma 发表于 2009-3-18 17:17

我是直接这样定义的syms h b L f0 si a1 a2 b1 b2 F ro E f_vide;
其中 a1 a2 b1 b2 F ro E f_vide 都是已知常数。
由于最后要得到公式,所以就也用 syms 定义了
现在 算上所要求 变量ro_fluid和 f0 ,si 一共3个变量,应该画一个三维图来显示三者关系。不能像我上面用的ezplot

(可以的话请使用编辑一帖发完 - by ChaChing!)

[ 本帖最后由 ChaChing 于 2009-3-18 21:41 编辑 ]
页: [1]
查看完整版本: 还是隐函数画图问题