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

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 09:42:41

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

用matlab求反函数值y=[312;362];y=36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)求x百度上搜到得那个对这个问题不能求解
这种超越方程用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
>>

fzero(@(x)36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)-312,1)%第一个解
fzero(@(x)36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)-363,1)%第二个解