大连理工大学c语言第三次上机作业,大连理工大学工数上机作业(6页)-原创力文档...

数学上机作业

姓 名:

学 号:

班 级:

第一题:人造地球卫星在轨道上可视为平面上的椭圆,地心位于椭圆的一个焦点处。已知一颗人造地球卫星近地点距地球表面439km,远地点距地球表面2384km,地球半径为6371km。求该卫星的轨道长度?

(1)算法:

依题意,卫星轨道的参数方程为x=acost, y=bsint(0≤t≤2π) a,b分别是长、短半轴。根据计算参数方程弧长的公式,椭圆长度可以表示为如右积分: 它无法用解析方法计算。所以根据所给数据,有

将数据代入得:a=7782.5, b=7721.5 。构造上半椭圆的弧微分,作为积分微元。利用C语言程序,采用数值积分的方法,用for语句在积分域内构造很多个小矩形,用小矩形面积之和近似代替积分数值。当矩形个数越多时,矩形面积之和越接近这个积分的数值。编写程序时,先定义函数,采用for语句,根据精度要求设置不同的步长,依次求和,计算出近似结果。

(2)程序:

#include

#include

#define a 7782.5

#define c 972.5

#define b sqrt(a*a-c*c)

#define n 1.0e-3

#define f sqrt(1+(-b*x)*(-b*x)/((a*a*a*a)-(a*a*x*x)))

main()

{

double L=0,x;

for(x=-999999*a/1000000;x

L=L+f*n;

L=L*2;

printf("轨道长为:");

printf("%.3lf\n",L);

}

(3)执行结果:

(4)分析:

针对这个程序,当x取值到-a时,积分微元的分母为零,所以在程序中,x取值为-99999*a/100000。并且,当这个数值越接近-a时,计算出来的值越接近准确值。另外,在程序中,步长越小,分割出的小矩形越多,计算出的值越接近准确值。当然,随着步长的减小,运算量会增加,运算时间也会增长,这是该程序的不足之处。

第二题:计算dt, 0≤x≤3

的函数值{f(0.1k);k=1,2,……30}。计算结果取7位有效数字。

(1)算法:

利用C语言程序,采用数值积分的方法,在开始定义被积函数,规定步长后,使用for语句对所有的矩形面积求和,就是对积分部分

进行近似计算,当每次取不同的x值,计算出一个近似值代入函数得到一个函数值,然后输出。

(2)程序:

#include

#include

#define E 2

#define Q 1.0e-7

#define PI 3.1415926

#define H pow(E,-i*i/2)

void main()

{

double i,f;

int k;

for(k=1;k<=30;k++)

{

f=0.0;

for(i=0;i<=k*0.1;i+=Q)

f=f+H*Q;

f=0.5+(1.0/sqrt(2*PI))*f;

printf("k=%2d, f(x) = %.7f\n",k,f);

}

}

(3)结果:

(4)分析

本题采用数值积分的方法编程求解,结果为近似值。题中将定义域分割成较小的1E-7,因此精确度较高,但是由于计算量大,耗费时间长。如果为了提高运算时间,那么定义域分割出来的矩形面积就变大,精确度不高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值