matlab如何求tan的反函数,为什么用MATLAB finverse函数求反函数出现了问题

共回答了20个问题采纳率:95%

数值的精度低,会有误差的.用字母的就好了.

例如下面解同样的精度数值是不一样的.对于字母的函数finverse用两次

会一样;数值的会有累计误差.

p=[1 0 -2 -5]

r=roots(p)

p =

1 0 -2 -5

r =

2.0946

-1.0473 + 1.1359i

-1.0473 - 1.1359i

syms x;

A=solve('x^3-2*x-5')

vpa(A)

ans =

2.0945514815423265914823865405793

1.1359398890889281862454926290294*i - 1.0472757407711632957411932702897

- 1.1359398890889281862454926290294*i- 1.0472757407711632957411932702897

1年前

追问

3

612491042

问题我这个差的有点太多了吧?

612491042

其实我的意思是解释你求两次反函数与原来会有差别,是由于数值解的精度造成的。

建议使用字母表示。

你给的函数是多值函数不存在返函数,因此会出错。如下,如果用你的函数,分段运行,结果和你的一样;但是如果是正切函数,就对着的。估计是反函数不唯一造成的,至于为什么反函数会变负数,而且再反没效果就不知道了。

syms x

%y=-(2.*x+x.^2-(x.^4+4.*x.^3+7.*x.^2+6.*x).^(1/2))./(x.^2+2.*x);

y=tan(x);

x1=0.05:0.05:1;

y1=subs(y,{x},{x1});

figure(1),plot(x1,y1,'r');

hold on;

yinverse=finverse(y);

x2=x1;

y2=subs(yinverse,{x},{x2});

plot(x2,y2,'g');

yinverseinverse=finverse(yinverse);

x3=x1;

y3=subs(yinverseinverse,{x},{x3});

plot(x3,y3,'b');

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值