数值计算方法大作业Word文件下载.docx

上传人:b****7 文档编号:22235221 上传时间:2023-02-03 格式:DOCX 页数:32 大小:126.25KB
下载 相关 举报
数值计算方法大作业Word文件下载.docx_第1页
第1页 / 共32页
数值计算方法大作业Word文件下载.docx_第2页
第2页 / 共32页
数值计算方法大作业Word文件下载.docx_第3页
第3页 / 共32页
数值计算方法大作业Word文件下载.docx_第4页
第4页 / 共32页
数值计算方法大作业Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

数值计算方法大作业Word文件下载.docx

《数值计算方法大作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《数值计算方法大作业Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。

数值计算方法大作业Word文件下载.docx

17

4.1约当消去法·

17

4.2高斯消去法·

18

4.3三角分解法·

20

4.4雅可比迭代法·

21

4.5高斯—赛德尔迭代法·

23

第五章常积分方程数值法·

25

5.1显示欧拉公式法·

5.2欧拉公式预测校正法·

26

5.3改进欧拉公式法·

27

5.4四阶龙格—库塔法·

28

 

数值计算方法

第一章非线性方程求根

1.1迭代法

程序代码:

PrivateSubCommand1_Click()

x0=Val(InputBox("

请输入初始值x0"

))

ep=Val(InputBox(请输入误差限ep))

f=0

Whilef=0

X1=(Exp(2*x0)-x0)/5

IfAbs(X1-x0)<

epThen

PrintX1

f=1

Else

x0=X1

EndIf

Wend

EndSub

例:

求f(x)=e2x-6x=0在x=0.5附近的根(ep=10-10)

1.2牛顿法

b=Val(InputBox("

请输入被开方数x0"

X1=x0-(x0^2-b)/(2*b)

的值。

(ep=10-10)

1.3弦截法

请输入第一个初始值x0"

X1=Val(InputBox("

请输入第二个初始值x1"

ep=Val(InputBox("

请输入误差限ep"

X2=X1-(X1^8-13)*(X1-x0)/((X1^8-13)-(x0^8-13))

IfAbs(X2-X1)<

PrintX2

X1=X2

求f(x)=x8-13的正根(初始值x1=1,x2=10,ep=10-10)

1.4二分法

a=Val(InputBox("

请输入区间端点a"

请输入区间端点b"

x=(a+b)/2

fx=Exp(-x/7)*(9-2*x)-8

fa=Exp(-a/7)*(9-2*a)-8

Iffx=0Then

Print"

方程的根是"

x

Iffa*fx>

0Then

a=x

b=x

IfAbs(b-a)<

x=(b+a)/2

求方程f(x)=e-7/x(9-2x)-8在区间[0,1]内的实根。

第2章插值

2.1线性插值

X0=Val(InputBox("

请输入第一个结点X:

"

Y0=Val(InputBox("

请输入第一个结点Y:

请输入第二个结点X:

Y1=Val(InputBox("

请输入第二个结点Y:

x=Val(InputBox("

请输入未知点的自变量值X:

L0=(x-X1)/(X0-X1)

L1=(x-X0)/(X1-X0)

y=L0*Y0+L1*Y1

x="

;

x,"

y="

y

f=Val(InputBox("

是否继续(0/1):

已知两点(13,1)、(49,8),求30处的值。

2.2二次插值

X2=Val(InputBox("

请输入第三个结点X:

Y2=Val(InputBox("

请输入第三个结点Y:

L0=(x-X1)*(x-X2)/(X0-X1)/(X0-X2)

L1=(x-X0)*(x-X2)/(X1-X0)/(X1-X2)

L2=(x-X0)*(x-X1)/(X2-X0)/(X2-X1)

y=L0*Y0+L1*Y1+L2*Y2

已知三点(81,9)、(100,10)、(121,10),求98处的值。

2.3拉格朗日插值

Dimx(),y()

n=Val(InputBox("

请输入插值节点数N"

ReDimx(n),y(n)

Fori=0Ton

x(i)=Val(InputBox("

请输入插值节点x("

+Str(i)+"

)"

y(i)=Val(InputBox("

请输入插值节点y("

Nexti

xx=Val(InputBox("

请输入未知点的自变量x:

Sum=0

t=1

Forj=0Ton

Ifj<

>

iThen

t=t*(xx-x(j))/(x(i)-x(j))

Nextj

Sum=Sum+t*y(i)

xx,"

Sum

是否继续(0/1)"

已知四点(100,10)、(81,9)、(64,8)、(49,7),求87处的值。

2.4分段线性插值

L=0

j=1

WhileL=0

Ifxx<

x(j)Then

k=j+1

L=1

j=j+1

Ifj>

n-1Then

k=n-1

l0=(xx-x(k))/(x(k-1)-x(k))

l1=(xx-x(k-1))/(x(k)-x(k-1))

yy=l0*y(k-1)+l1*y(k)

yy

已知三点(361,19)、(324,18)、(289,17),N=2,求300处的值。

2.5分段二次插值

Ifx0<

x

(1)Then

k=1

i=2

DoWhilef=0Andi>

=n-1

x(i)Then

Ifx0-x(i-1)<

x(i)-x0Then

k=i-1

k=i

i=i+1

Loop

Iff=0Then

l1=(xx-x(k+1))*(xx-x(k))/((x(k-1)-x(k+1))*(x(k-1)-x(k)))

l2=(xx-x(k+1))*(xx-x(k-1))/((x(k)-x(k+1))*(x(k)-x(k-1)))

l3=(xx-x(k))*(xx-x(k-1))/((x(k+1)-x(k))*(x(k+1)-x(k-1)))

yy=l1*y(k-1)+l2*y(k)+l3*y(k+1)

已知三点(225,15)、(196,14)、(169,13),求180处的值。

第3章数值积分

3.1复化矩形积分法

请输入积分下限a"

请输入积分上限b"

请输入积分区间等分数N"

h=(b-a)/n

Fori=1Ton

Sum=Sum+(a+(i-0.5)*h)^2

r=h*Sum

复化矩形积分法计算结果:

r

例:

求X2在区间[3,5]的积分值,等分区间为100。

3.2复化梯形积分法

Fori=1Ton-1

Sum=Sum+(a+i*h)^2

t=h*(a^2+b^2)/2+h*Sum

复化梯形积分法计算结果:

t

3.3辛普生积分法

请输入积分下限A:

请输入积分上限B:

请输入积分区间等分数N:

w=a+h/2

Whilew<

b

Sum=Sum+(w-h/2)^2+4*w^2+(w+h/2)^2

w=w+h

s=Sum*h/6

辛普生积分法计算结果:

s

3.4变步长梯形积分法

请输入积分下限a:

请输入积分上限b:

请输入误差限ep:

n=1

h=b-a

t1=h*(a^2+b^2)/2

Sum=Sum+(a+(i-1/2)*h)^2

T2=t1/2+h*Sum/2

IfAbs(T2-t1)<

PrintT2

t1=T2

h=h/2

n=2*n

求X2在区间[3,5]的积分值,误差限ep=0.0001。

第4章线性方程组数值解法

4.1约当消去法

Dima()

请输入方程的个数N:

ReDima(n,n+1)

Forj=1Ton+1

a(i,j)=Val(InputBox("

请输入增广矩阵A("

"

+Str(j)+"

)="

Fork=1Ton

m=a(k,k)

Forj=kTon+1

a(k,j)=a(k,j)/m

Ifi<

kThen

m=a(i,k)

a(i,j)=a(i,j)-a(k,j)*m

Nextk

x("

a(i,n+1)

已知方程组,求X1X2X3的值。

X1+X2+X3=20

2X1+3X2+X3=38

X1+4X2+X3=35

4.2高斯消去法

Dima(),x()

请输入方程个数N:

ReDima(n,n+1),x(n)

):

Fork=1Ton-1

Fori=k+1Ton

x(n)=a(n,n+1)/a(n,n)

Fori=n-1To1Step-1

Forj=i+1Ton

Sum=Sum+a(i,j)*x(j)

x(i)=a(i,n+1)-Sum

x(i)

2X1+5X2+X3=21

4X1+3X2+3X3=31

X1+3X2+2X3=16

4.3三角分解法

Dima(),b(),l(),u(),x(),y()

ReDima(n,n),b(n),l(n,n),u(n,n),x(n),y(n)

Forj=1Ton

请输入系数矩阵A("

b(i)=Val(InputBox("

请输入右端常数项B("

Ifi>

jThen

Fork=1Toj-1

Sum=Sum+l(i,k)*u(k,j)

l(i,j)=(a(i,j)-Sum)/u(j,j)

Fork=1Toi-1

u(i,j)=a(i,j)-Sum

Forj=1Toi-1

Sum=Sum+l(i,j)*y(j)

y(i)=b(i)-Sum

Fori=nTo1Step-1

Sum=Sum+u(i,j)*x(j)

x(i)=(y(i)-Sum)/u(i,i)

2X1+3X2+4X3=38

X1+7X2+3X3=65

5X1+2X2+X3=33

4.4雅可比迭代法

Dima(),b(),x0(),x()

ReDima(n,n),b(n),x0(n),x(n)

请输入误差限EP:

nmax=Val(InputBox("

请输入最大迭代次数Nmax:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1