数值分析课程设计大作业

发布 2020-02-26 18:45:28 阅读 2222

课程设计。

2023年07月20日。

1.1水手、猴子和椰子问题。

算法分析:设椰子起初的数目为,第一至第五次猴子在夜里藏椰子后,椰子的数目分别为,,,再设最后每个人分得x个椰子,由题意得:

利用逆向递推方法求解:

n=input('n=')

for x=1:n

p=5*x+1;

for k=1:5

p=5*p/4+1;

endif p==fix(p)

break

endend

disp([x,p])

执行**后得: n= 1023 15621 (输入n=1000000)

即最后每个人分得1023个椰子,椰子总数为15621

1.2当时,选择稳定的算法计算积分。由。得

由上式可知求时,的误差的影响被缩小了。n=100时的近似值为0。

matlab **为。

fprintf('稳定算法:')

y0=0;n=100;

plot(n,y0,'r*')

hold on

fprintf('y[100]=%10.6f',y0);

while(1)

y1=1/10*[(1-exp(-n))/n-y0];

fprintf('y[%10.0f]=%10.6f',n-1,y1);plot(n-1,y1,'r*')

if(n<=1) break;end

y0=y1;n=n-1;

if mod(n,3)==0,fprintf(''),end,end

具体值已省略)

编程实现得下图。

由图可知,该算法是稳定的。

1.3绘制静态和动态的koch分形曲线。

koch曲线程序。

function koch(a1,b1,a2,b2,n)

koch(0,0,9,0,3)

a1,b1,a2,b2为初始线段两端点坐标,n为迭代次数。

例如a1=0;b1=0;a2=9;b2=0;n=3;

第i-1次迭代时由各条线段产生的新四条线段的五点横、纵坐标存储在数组a、b中。

a,b]=sub_koch1(a1,b1,a2,b2);

for i=1:n

for j=1:length(a)/5;

w=sub_koch2(a(1+5*(j-1):5*j),b(1+5*(j-1):5*j));

for k=1:4

[aa(5*4*(j-1)+5*(k-1)+1:5*4*(j-1)+5*(k-1)+5),bb(5*4*(j-1)+5*(k-1)+1:5*4*(j-1)+5*(k-1)+5)]=sub_koch1(w(k,1),w(k,2),w(k,3),w(k,4));

end end

a=aa;b=bb;

endplot(a,b)

hold on

axis equal

由以(ax,ay),(bx,by)为端点的线段生成新的中间三点坐标并把这五点横、纵坐标依次分别存%储在数组a,b中。

function [a,b]=sub_koch1(ax,ay,bx,by)

cx=ax+(bx-ax)/3;

cy=ay+(by-ay)/3;

ex=bx-(bx-ax)/3;

ey=by-(by-ay)/3;

l=sqrt((ex-cx).^2+(ey-cy).^2);

alpha=atan((ey-cy)./ex-cx));

if (ex-cx)<0

alpha=alpha+pi;

enddx=cx+cos(alpha+pi/3)*l;

dy=cy+sin(alpha+pi/3)*l;

a=[ax,cx,dx,ex,bx];

b=[ay,cy,dy,ey,by];

把由函数sub_koch1生成的五点横、纵坐标a,b顺次划分为四组,分别对应四条折线段中。

每条线段两端点的坐标,并依次分别存储在4*4阶矩阵k中,k中第i(i=1,2,3,4)行数字代表第%i条线段两端点的坐标。

function w=sub_koch2(a,b)

a11=a(1);b11=b(1);

a12=a(2);b12=b(2);

a21=a(2);b21=b(2);

a22=a(3);b22=b(3);

a31=a(3);b31=b(3);

a32=a(4);b32=b(4);

a41=a(4);b41=b(4);

a42=a(5);b42=b(5);

w=[a11,b11,a12,b12;a21,b21,a22,b22;a31,b31,a32,b32;a41,b41,a42,b42];

调用函数得到下图。

n=5;i=0;while ifigure(i+1);koch(0,0,3,0,i)

i=i+1;pause(1)

end 将pause(1)去掉可得静态图。

2.1小行星轨道问题。

为了确定方程中的5个待定系数,需要将上述5个点的坐标代入上面的方程,得:

将这一包含5个未知数的线性方程组,写成矩阵的形式。

1) 求解这一线性方程组,即可得到曲线方程的系数。

x0=[53605 58460 62859 66662 68894];

y0=[6062 11179 16954 23492 68894];

a=zeros(5);x0(1);

for i=1:5

a(i,1)=x0(i)^2;a(i,2)=2*x0(i)*y0(i);a(i,3)=y0(i)^2;a(i,4)=2*x0(i);a(i,5)=2*y0(i);

end;format long g;a a=

b=[-1 -1 -1 -1 -1]';format long g;x=a\b

x =-8.06820280371841e-011

-7.63620099622306e-011

-3.0801152978055e-010

-8.89025159419867e-006

2.02829368401655e-005

(2)用lu分解法解可得。

format long g;

a = 2873496025 649907020 36747844 107210 12124;

b=[-1 -1 -1 -1 -1]';

l,u,flag ]=lu_decom(a),format long g;x=u\(l\b)

flag =okx =

-8.06820280370254e-011

-7.63620099622621e-011

-3.08011529780421e-010

-8.89025159420231e-006

2.02829368401615e-005

jacobi迭代法:

jacobic(a)

因为谱半径不小于1,所以jacobi迭代序列发散,谱半径srh和b的所有特征值h如下:srh =

ans =

gsc(a)

因为谱半径不小于1,所以gauss-seidel迭代序列发散,谱半径srh和b的所有特征值h如下:srh =

数值分析实验课作业课程设计

大学课程设计。课程名称 数值计算方法实验 学院名称。组员姓名。指导教师姓名。设计时间 2013 6 1 2013 6 14目录。程序题目1 源程序2运行结果3 设计总结3一 程序题目。1 利用梯形公式计算 y y 2x y 0 x 1各节点的函数值 y 0 1 2 复化梯形求积公式。将积分区间 a,...

数值分析课程设计题目

课程设计1 三个人,用不同方法 土木工程和环境工程师在设计一条排水渠道时必须考虑渠道的各种参数 如宽度,深度,渠道内壁光滑度 及水流速度 流量 水深等物理量之间的关系。假设修一条横断面为矩形的水渠,其宽度为b,假定水流是定常的,也就是说水流速度不随时间而变化。根据质量守恒定律可以得到 q ubh1....

数值分析大作业

课程设计。题目一 非线性方程求根。用newton法计算下列方程。1 初值分别为,2 其三个根分别为。当选择初值时给出结果并分析现象,当,迭代停止。一 摘要。非线性方程的解析解通常很难给出,因此非线性方程的数值解就尤为重要。本实验通过使用常用的求解方法二分法和newton法及改进的newton法处理几...