用matlab求反函数值

[复制链接]
查看11 | 回复2 | 2010-9-10 22:13:56 | 显示全部楼层 |阅读模式
y=[312;362];
y=36.356945*((x-6).*sqrt(x.*(12 - x))+36*asin(x/6 - 1)+0.5*pi*36)
求x
百度上搜到得那个对这个问题不能求解

回复

使用道具 举报

千问 | 2010-9-10 22:13:56 | 显示全部楼层
这种超越方程用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*
回复

使用道具 举报

千问 | 2010-9-10 22:13:56 | 显示全部楼层
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)%第二个解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行