用matlab求反函数值

问题描述:

用matlab求反函数值
y=[312;362];
y=36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)
求x
百度上搜到得那个对这个问题不能求解
1个回答 分类:综合 2014-10-29

问题解答:

我来补答
这种超越方程用solve( )函数一般不能解,因此需要用数值解法
具体解法如下:
先用ezplot做图,根据图像找出解的大概位置,再用fzero( )函数求精确解
源码如下:
ezplot('36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)'),
hold on
可以看出当y=312和362时,解x大概在1和2之间,这样就可以用fzero求
a1=fzero('36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)-312',2),
a2=fzero('36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)-362',2)
运行结果:
a1 =
1.5528
a2 =
1.7198
 
 
展开全文阅读
剩余:2000
上一页:求形状的题不会