x=acost
y=bsint .
M(x,y)椭圆上一点。过M作直线⊥X轴,交以O为圆心,以a为半径的圆于B点,连接OB.
式中,t----OB与X轴的正向的正夹角, a----椭圆的长半径,b----椭圆的短半径。
matlab求解椭圆积分,可以用数值积分函数(如integral, trapz)来求解。解决的办法:
1、首先建立自定义的椭圆积分函数
fun1=@(x)1./sqrt(1-q^2*sin(x).^2)%F(a,q)
fun2=@(x)sqrt(1-q^2*sin(x).^2)%E(a,q)
2、确定a,q值
3、使用integral函数求解。
4、完整的代码
a=0.5q=0.2
fun1=@(x)1./sqrt(1-q^2*sin(x).^2)%F(a,q)
fun2=@(x)sqrt(1-q^2*sin(x).^2)%E(a,q)
F=integral(fun1,0,a)
E=integral(fun2,0,a)
5、计算结果
可以用椭圆的参数方程嘛。
x=-2+2cos(t)
y=6+3sin(t)
t从0到2*pi。
具体程序就是:
>>t=linspace(0,2*pi,1000)
>>x=-2+2*cos(t)
>>y=6+3*sin(t)
>>plot(x,y),grid on
画出来的就是这样:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)