声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5449|回复: 18

[绘图技巧] 关于椭圆函数作图

[复制链接]
发表于 2006-5-9 21:16 | 显示全部楼层 |阅读模式

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

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

x
那位老兄知道椭圆函数的作图方法比如 sn(x), dn(x)........谢谢啦~~!

[ 本帖最后由 eight 于 2007-10-29 19:02 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-5-9 22:12 | 显示全部楼层

回复:(yh0247)求教:椭圆函数作图

<P>不知道椭圆函数什么样,把具体形式给以下</P>
发表于 2007-10-29 16:43 | 显示全部楼层
:lol :lol 同问同问,急切想要知道如何作图
发表于 2007-10-29 16:46 | 显示全部楼层

回复 #3 咕噜噜 的帖子

我也有2楼的的疑问,因此希望可以把函数的形式叙述清楚:loveliness: :handshake
发表于 2007-10-29 16:55 | 显示全部楼层
贴上具体形式,时间T是变量,其他均为常数

[ 本帖最后由 咕噜噜 于 2007-10-29 17:32 编辑 ]
tuoyuan.JPG
发表于 2007-10-29 19:51 | 显示全部楼层
程序是写出来了,不过似乎结果有些问题。高手们来看看到底是怎么回事,因为对这个不懂,所以找不到原因所在
  1. clear,clc;
  2. T=2;p=1.5;u=0.9;
  3. X=5;%最大积分上限
  4. sx=linspace(0+eps,X,100);
  5. for i=1:length(sx)
  6.   Q(i)=quadl(@(x)tyzx(x,u),0,sx(i),1.0e-10);
  7. end
  8. tem=abs(Q-p*T);[delt,x]=min(tem);
  9. plot(Q,sx),xlabel('+p*T'),ylabel('积分上限x')
  10. disp(strcat('满足条件的x是',num2str(sx(x))))
复制代码
满足条件的x是1.9192
  1. function y=tyzx(x,u)
  2. y=1./sqrt(1-u^2*sin(x).^2);
复制代码

[ 本帖最后由 花如月 于 2007-10-29 19:53 编辑 ]
temp.PNG
发表于 2007-10-30 08:14 | 显示全部楼层

回复 #6 花如月 的帖子

画出来应该是周期变化的啊,幅值上没有这么大
发表于 2007-10-30 08:55 | 显示全部楼层

回复 #7 咕噜噜 的帖子

我没检查不出来错误啊,就是按照你给你的式子做的,所以才发上来让你们帮忙查查
发表于 2007-10-30 09:32 | 显示全部楼层
这个问题matlab可以直接给出积分结果
>> syms z y u
>> int(1/sqrt(1-u^2*sin(z)^2),z,0,y)

ans =

(1-sin(y)^2)^(1/2)*EllipticF(sin(y),csgn(u)*u)/cos(y)
但是在求值的时候,提示EllipticF和csgn的值无法计算。在help文档里可以搜索到这个2个函数,不过看不懂是干什么用的:@L
发表于 2007-10-30 10:17 | 显示全部楼层
难道要自己查表?
发表于 2007-10-30 13:55 | 显示全部楼层
原帖由 花如月 于 2007-10-30 09:32 发表
这个问题matlab可以直接给出积分结果
>> syms z y u
>> int(1/sqrt(1-u^2*sin(z)^2),z,0,y)

ans =

(1-sin(y)^2)^(1/2)*EllipticF(sin(y),csgn(u)*u)/cos(y)
但是在求值的时候,提示EllipticF和csgn的值 ...

几经搜索后发现EllipticF是maple function,在matlab里有专门一个函数mfun用于计算它的数值。因此上边的积分结果就可以通过下边的程序求出,并绘图
  1. y=0:100;
  2. for i=1:length(y)
  3.     ellip(i)=mfun('EllipticF',sin(y(i)),1.3);%这个用法很少见,在mathwork网站也只搜到一条
  4.                                                      %相当于计算EllipticF(sin(y),csgn(u)*u)的值
  5. end
  6. F=(1-sin(y).^2).^(1/2).*ellip./cos(y);%相当于计算int的结果
  7.                                                     %(1-sin(y)^2)^(1/2)*EllipticF(sin(y),csgn(u)*u)/cos(y)的值
  8. plot(y,F)
  9. xlabel('积分上限'),ylabel('积分结果')
复制代码
注意EllipticF和csgn都并非matlab函数,csgn的定义见附图

[ 本帖最后由 花如月 于 2007-10-30 14:03 编辑 ]
csgn.PNG
result.PNG

评分

1

查看全部评分

发表于 2007-11-1 11:46 | 显示全部楼层
这个问题参考我的一个示例贴很容易解决,或者用Matlab自带的函数也行,调用maple function也是一种办法...
发表于 2007-11-1 12:12 | 显示全部楼层

回复 #12 xjzuo 的帖子

我费了好大劲结果也不理想,是哪个帖子?如果能给出解办法,这个帖子就算是完整了
发表于 2007-11-1 16:37 | 显示全部楼层
方法有四:
%%%===============%%%
1. 帖子: 关于带参数的积分问题;
2. help ellipke, ellipj ;
3. 用maple function;
4. 用mathematica也很简单.
%%%===============%%%

评分

1

查看全部评分

发表于 2009-1-12 12:24 | 显示全部楼层
我有个类似的椭圆问题想请交一下各位高手!
这里引进符号常数: ,为了求(13)式的积分表达式引入变量 ,由此得到:


19
14)的左边部分含有一阶椭圆积分,表达式 ,变换椭圆积分,我们都知道可借用雅可比行列式得到椭圆积分。这样就可以把解写成以下的形式:
      20
其中:
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-18 12:06 , Processed in 0.128105 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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