matlab里面积分时报错在inlinea=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里面
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 19:46:50
matlab里面积分时报错在inlinea=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
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里面积分时报错在inlinea=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里面
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