声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1443|回复: 3

[编程技巧] 求过一点与已知曲线相切的直线方程

[复制链接]
发表于 2007-11-8 10:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有一曲线方程,只有反函数:
x=5*(y^0.4-1)-4/3*(1-y^(-1.4))
又已知点(x,y)为(0,2/3),
想得到过已知点与曲线相切的直线方程.
y=kx+2/3;

我的matlab程序如下:
y=sym('y');
x=5*(y^(0.4/1.4)-1)-4/3*(1-y^(-1/1.4));
k1=1/diff(x);     %求原函数的斜率
g=k1-(y-2/3)/x;
solve(g);           %解k1-(y-2/3)/x=0的方程

最后的结果为:
[                                                                     0]
[ .57408628615350053921651595916433+.21700401118565554224069138423625*i]
[ .57408628615350053921651595916433-.21700401118565554224069138423625*i]
[                                     3.3662706225725277424561229147528]

这个结果不知道是什么,怎么会有4个解?解应该只有一个.

求助!!!不甚感激:>

[ 本帖最后由 eight 于 2007-11-18 00:00 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-11-8 12:55 | 显示全部楼层

回复 #1 melonese 的帖子

应该就是实数域内的那个解
发表于 2007-11-8 13:58 | 显示全部楼层
我想用下面这个程序来看看有没有切线的,结果发现,0,2/3点就在上面,怎么会有切线啊

y=[0:0.01:1];x=5*(y.^(0.4/1.4)-1)-4/3*(1-y.^(-1/1.4));
plot(x,y);
hold on;
a=ginput(1);h=plot([0 a(1)],[2/3 a(2)]);pause(1);
while 1
    a=ginput(1);
    set(h,'visible','off');
    h=plot([0 a(1)],[2/3 a(2)]) ;
end
发表于 2007-11-9 15:29 | 显示全部楼层
求曲线的切线: 根据高数公式,利用隐函数求导,即可得到.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 08:19 , Processed in 0.058776 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表