作业帮 > 综合 > 作业

matlab自定义函数出错

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 12:44:26
matlab自定义函数出错
下面是源程序
function xlogx=xlogx(x)
if x==0
xlogx=0;
else if x> xlogx(x)
Warning:Log of zero.
> In xlogx at 7
ans =
NaN -0.3219 -0.3665 -0.3065 -0.1785 0 0.2188 0.4711 0.7520 1.0580 1.3863
为什么在m文件里定义了当x=0时xlogx直接为0,它还警告Warning:Log of zero.
还有,第一个NaN是怎么算出来的?为什么不是0?
你输入是个向量x,所以x==0不成立 x
再问: 非常感谢你,可以再帮我一下吗?我会加分的: function p=h(m) x1=m(1); x2=m(2); p(1)=log(x1./(1-x1))-log(x2./(1-x2))-5/8; p(2)=0.8*log(x1./(1-x1))*(x2-x1)-0.8*((1-x2).*log(1-x2)+x2.*log(x2))+(-0.2*(1-x1)+0.3*x1+0.8*((1-x1).*log(1-x1)+x1.*log(x1))); 这样定义的h非线性方程组错在哪里?
再答: 你的输入是什么啊?看定义没什么问题啊
再问: 那换一个问题吧,假如我定义了一个变量 x=0:0.1:2; y=x.^2+5*x+3; 那么我如果想求x=1.51(前面x的取值时并没有取这个值,由于某种原因也不能将x的取值过于细化)时y的值,我如果这样写y(x==1.51)它提示出错,那我是不是非要将前面的y的式子抄一遍,将x=1.51代入,写成1.51^2+5*1.51+3?
再答: 是的,在已知方程的情况下,这样做最简单