作业帮 > 综合 > 作业

matlab里面积分时报错在inline

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/25 18:21:02
matlab里面积分时报错在inline
a=1.2;b=1.78;alfa=4.1;l1=0.4;l2=2.05;
alfa=alfa*pi/180;h=0.4724;
f=inline('(-a/2+x*tan(alfa))*(a*x*tan(alfa)-x^2*(tan(alfa))^2)+a^2*asin((-a+2*x*tan(alfa))/a)','x');
quad(f,0.1,1)
我知道把a b alfa 等带入f里面的式子可以运行,但是为什么在前面声明就不行了
matlab里面积分时报错在inline
f=inline('(-a/2+x*tan(alfa))*(a*x*tan(alfa)-x^2*(tan(alfa))^2)+a^2*asin((-a+2*x*tan(alfa))/a)','x');
是把一个字符串转为函数,所以a,b alfa 等不会代入数值
可改为
f=@(x)(-a/2+x*tan(alfa)).*(a*x.*tan(alfa)-x.^2*(tan(alfa))^2)+a^2*asin((-a+2*x.*tan(alfa))/a);
即可

quad(f,0.1,1)
ans =
-1.6010