Matlab中出现虚数怎么办fzero的运用有什么限制,应该用那个函数?

clearx=[-2:1:5];y=sqrt(1.5806e+041*x).*tan(sqrt(1.5806e+041*x).*2.0000e-009)/0.0342-s... clear
x=[-2:1:5];
y= sqrt(1.5806e+041*x).*tan(sqrt(1.5806e+041*x).*2.0000e-009)/0.0342-sqrt(3.4964e+041*(4.1880e-007-x))./0.757;
plot(x,y,'r','LineWidth',1.5) Warning: Imaginary parts of complex X and/or Y arguments ignored.%???怎么解决?
>> set(gca,'Xtick',[-2:0.5:5]) >> grid >> h=line([-2,5],[0,0]);
>> f=@(x)sqrt(1.5806e+041*x).*tan(sqrt(1.5806e+041*x).*2.0000e-009)/0.0342-sqrt(3.4964e+041*(4.1880e-007... -x))./0.757;
>> [x1,f1,exitflag1]=fzero(f,3);
??? Error using ==> fzero
Function value at starting guess must be finite and real.%自然接下来就算不了了
展开
 我来答
qingningleyun
2013-11-20 · TA获得超过5853个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3039万
展开全部
y = real(y); % 取出实部
更多追问追答
追问
首先谢谢,不过那数据就不真实了,有其它办法没?
追答

clear

x=[-2:1:5];

y= sqrt(1.5806e+041*x).*tan(sqrt(1.5806e+041*x).*2.0000e-009)/0.0342-sqrt(3.4964e+041*(4.1880e-007-x))./0.757;

hold on;

plot(x,real(y),'r','LineWidth',1.5);

plot(x,imag(y),'bo');               % 将虚部标记为蓝圈,这样并不影响 y 值

hold off;

set(gca,'Xtick',[-2:0.5:5]);

grid;

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式