计算实习报告如何写?(12)


if(k!=i)
for(j=i;j {
p=*(c+i*(n+1)+j);
*(c+i*(n+1)+j)=*(c+k*(n+1)+j);
*(c+k*(n+1)+j)=p;
}
for(j=i+1;j {
p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));
for(t=i;t }}for(i=n-1;i>=0;i--){
for(j=n-1;j>=i+1;j--)
(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));
x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));} }
float power(int i,float v) {float a=1;while(i--)a*=v;return a; } (2)实验结果
四、总结
通过曲线拟合 , 最小二乘法的基本原理的学习 , 我学会了利用计算机解决现实实际问题中的曲线拟合 。
习题六:
6数值积分
一、实验目的
(1)通过实际计算体会各种方法的精确度; (2)会编写用龙贝格算法求定积分的程序 。
二、实验内容
编写复化柯特斯求积分公式 , 并计算例题1例题2 , 观察n为多少时有6位有效数字 。
三、程序设计、实验结果及分析 (1)程序设计 #include #include float Cotes(float(*f)(float),float a,float b,int n) {int k;float c,c1=0,c2,c3,c4;float h=(b-a)/n;c2=(*f)(a+h/4);c3=(*f)(a+h/2);c4=(*f)(a+3*h/4);for(k=1;kc1+=(*f)(a+k*h);
c2+=(*f)(a+k*h+h/4);
c3+=(*f)(a+k*h+h/2);
c4+=(*f)(a+k*h+3*h/4);}c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4);return c; } float f(float x) {return 1/sqrt(1+x*x*x); } void main() {int i,n=4;float c;for(i=0;ic=Cotes(f,0,1,n);
printf("C(%d)=%f\\\\n",n,c);
n*=2;} } #include #include float Cotes(float(*f)(float),float a,float b,int n) {int k;float c,c1=0,c2,c3,c4;float h=(b-a)/n;c2=(*f)(a+h/4);c3=(*f)(a+h/2);c4=(*f)(a+3*h/4);for(k=1;kc1+=(*f)(a+k*h);
c2+=(*f)(a+k*h+h/4);
c3+=(*f)(a+k*h+h/2);
c4+=(*f)(a+k*h+3*h/4);}c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4);return c; } float f(float x) {//return 1/sqrt(1+x*x*x);
if (x==0)return 1;
else return sin(x)/x;} void main() {int i,n=4;float c;for(i=0;ic=Cotes(f,0,5,n);
printf("C(%d)=%f\\\\n",n,c);
n*=2;} }
(2)实验结果及分析
四、总结
学习了复化辛卜生公式 , 自适应梯形公式 , 龙贝格算法 , 运用求解定积分并控制精度的方法 。
习题七:
7常微分方程数值解法
一、实验目的
(1)熟悉求解常微分方程初值问题的有关方法和理论 , 主要是改进欧拉公式 , 四阶龙格-库塔法和阿当姆斯方法;
(2)编制上述方法计算机程序 , 包括求解微分方程组的计算程序; (3)针对实习题编制程序 , 并上机计算其所需要的结果;
(4)体会各种解法的功能 , 优缺点及适用场合 , 会选取适当的求解方法 。
二、实验内容
1、分别用改进欧拉法与四阶龙格-库塔公式(取h?0.1)求解下列微分方程初值问题
2、用四阶龙格-库塔公式(取h?0.1)解下列微分方程组初值问题