数值分析实验题华科.docx

上传人:b****7 文档编号:8718269 上传时间:2023-02-01 格式:DOCX 页数:14 大小:473.98KB
下载 相关 举报
数值分析实验题华科.docx_第1页
第1页 / 共14页
数值分析实验题华科.docx_第2页
第2页 / 共14页
数值分析实验题华科.docx_第3页
第3页 / 共14页
数值分析实验题华科.docx_第4页
第4页 / 共14页
数值分析实验题华科.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数值分析实验题华科.docx

《数值分析实验题华科.docx》由会员分享,可在线阅读,更多相关《数值分析实验题华科.docx(14页珍藏版)》请在冰豆网上搜索。

数值分析实验题华科.docx

数值分析实验题华科

数值分析实验题(-华科)

 

数值分析实验作业

 

专业:

姓名:

学号:

实验2.1多项式插值的振荡现象

[问题提出]:

考虑在一个固定的区间上用插值逼近一个函数,显然Lagrange插值中使用的节点越多,插值多项式的次数就越高,我们自然关心插值多项的次数增加时,Ln(x)是否也更加靠近逼近的函数,Runge给出的例子是极著名并富有启发性的,设区间[-1,1]上函数

[实验内容]:

考虑区间[-1,1]的一个等距离划分,分点为

则拉格朗日插值多项式为

其中,

,i=0,1,2,…,n是n次Lagrange插值函数。

[实验要求]:

(1)选择不断增大的分点数目n=2,3,…画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像,比较并分析实验结果。

(2)选择其他的函数,例如定义在区间[-5,5]上的函数,

重复上述的实验看其结果如何。

解:

以下的f(x)、h(x)、g(x)的为插值点用“*”表示,朗格朗日拟合曲线用连续曲线表示。

通过三个函数的拉格朗日拟合可以看到,随着插值点的增加,产生Rung现象。

(1)f(x)

(2)h(x)

(3)g(x)

实验3.1最小二乘法拟合

编制以函数

为基的多项式最小二乘拟合程序,并用于对表中的数据作三次多项式最小二乘拟合。

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

-4.447

-0.452

0.551

0.048

-0.447

0.549

4.552

取权数

求拟合曲线

中的参数

,平方误差

,并作离散数据

的拟合函数

的图形。

解:

三次多项式的拟合曲线为:

此题中权函数

,即W=(1,1,1,1,1,1,1)

利用法方程

求解这个方程组,就可以得到系数a。

解之得:

故拟合的函数为:

平方误差为:

2.176191667187105e-05

拟合的函数图像如下:

实验5.1常微分方程性态和R-K法稳定性试验

[试验目的]:

考察下面的微分方程右端项中函数y前面的参数对方程性态的影响(它可使方程为好条件的或坏条件的)和研究计算步长对R-K法计算稳定性的影响。

[实验题目]:

常微分方程初值问题

其中,

其精确解为

[实验要求]:

(1)对于参数

,分别去四个不同的数值:

一个大的正值,一个小的正值,一个绝对值小的负值和一个绝对值大的负值。

取步长

,分别用经典R-K法计算,将四组计算结果画在同一张图上,进行比较并说明相应初值问题的性态。

(2)对于参数

为一个绝对值不大的负值和两个计算步,一个计算步使参数

在经典R-K法的稳定域内,另一个步长在经典的R-K法的稳定域外。

分别用经典R-K法计算并比较计算结果。

取全域等距的10个点上的计算值,列表说明。

解:

对于4阶R-K法绝对稳定区为:

这里

,所以绝对稳定区为:

(1)

对于

,绝对稳定区:

a

2

1

-1

-2

h

0.01

0.01

0.01

0.01

(2)

对于

,稳定区

a

-20

-20

h

0.01

0.15

x

y(精确解)

数值解y1

(a=-20,h=0.01)

y1-y

数值解y2

(a=-20,h=0.15)

y1-y

0.15

0.199787

0.199789

2.35E-06

1.525000

1.325213

0.30

0.302479

0.302479

2.34E-07

2.190625

1.888146

0.45

0.450123

0.450123

1.75E-08

3.049609

2.599486

0.60

0.600006

0.600006

1.16E-09

4.174463

3.574457

0.75

0.750000

0.750000

7.23E-11

5.664886

4.914886

0.90

0.900000

0.900000

4.32E-12

7.657969

6.757969

可见h=0.01时,数值解稳定h=0.15时,数值解不稳定。

程序源代码

functiontestCharpt2_1

%对数值分析实验题第2章第1题进行分析

promps={'输入f为选择f(x);输入h为选择h(x);输入g为选择g(x)'};

result=inputdlg(promps,'请选择实验函数');

chooseFunction=char(result);

switchchooseFunction

case'f'

f=inline('1./(1+25*x.^2)');

a=-1;

b=1;

nameFuc='f(x)';

case'h'

f=inline('x./(1+x.^4)');

a=-5;

b=5

nameFuc='h(x)'

case'g'

f=inline('atan(x)');

a=-5;

b=5

nameFuc='g(x)'

end

%promps2={'n='};

%nNumble=inputdlg(promps2,'请输入分点数n');

nNumble=[2:

11]

fori=1:

length(nNumble)

x=linspace(a,b,nNumble(i)+1);

y=feval(f,x);

xx=a:

0.1:

b;

yy=lagrange(x,y,xx)

figure

fplot(f,[a,b],'*')

holdon

plot(xx,yy,'LineWidth',2)

xlabel('x')

ylabel('y')

legend(nameFuc,'lagrange(x)')

nameTitle=['多项式求值的振荡现象','n=',num2str(nNumble(i))]

title(nameTitle,'FontSize',14);

gridon

end

 

functionyy=lagrange(x,y,xx)

%s实现拉格朗日插值

%输入参数x,y分别为已知插值点的自变量和因变量

%输入参数xx为拟合点的自变量值

%输出参数yy为对应自变量xx的拟合值

xLength=length(x);

xxLength=length(xx);

fori1=1:

xxLength

yy(i1)=0;

fori2=1:

xLength

p=1;

fori3=1:

xLength

if(i2~=i3)

p=p*(xx(i1)-x(i3))/(x(i2)-x(i3));

end

end

yy(i1)=yy(i1)+p*y(i2);

end

end

functiontestCharpt3_1()

%对数值分析实验题第3章第1题进行分析

%输入参数:

自变量x,因变量y

%输入参数:

多项式拟合次数n

clc

clear

formatlong

x=[-1.0,-0.5,0.0,0.5,1.0,1.5,2.0]

y=[-4.447,-0.452,0.551,0.048,-0.447,0.549,4.552]

n=3

A=[];

fori=1:

length(x)

A=[A;1x(i)x(i)^2x(i)^3]

end

A2=A'*A;

a=inv(A2)*A'*y'%多项式的系数

%a=roundn(a,-6)

yy=a

(1)+a

(2)*x+a(3)*x.^2+a(4)*x.^3;

r=(y-yy)*(y-yy)'%平方误差

clf

holdon

plot(x,y,'or');

x2=-1:

0.01:

2;

y2=a

(1)+a

(2)*x2+a(3)*x2.^2+a(4)*x2.^3;

plot(x2,y2,'LineWidth',2);

legend('离散值','拟合曲线')

xlabel('x');

ylabel('y');

title(['3次多项式拟合,平方误差=',num2str(r)],'FontSize',14);

gridon

functiontestCharpt5_1

%对数值分析实验题第3章第1题进行分析

%输入参数:

参数a,步长h

%精确解和数值解图形对比

%%第1问输入

a=[21-1-2]%输入a的取值

h=[0.010.010.010.01]%输入h的取值

%%第2问输入

%a=[-20-20]%输入a的取值

%h=[0.010.15]%输入h的取值

%%

func=inline('1+(y-x).*a');%定义函数

fori=1:

length(a)

x=0:

h(i):

1;%求解区间

y=x;

N=length(x);

y

(1)=1;

forn=1:

N-1

k1=func(a(i),x(n),y(n));

k2=func(a(i),x(n)+h(i)/2,y(n)+k1*h(i)/2);

k3=func(a(i),x(n)+h(i)/2,y(n)+k2*h(i)/2);

k4=func(a(i),x(n)+h(i),y(n)+k3*h(i));

y(n+1)=y(n)+h(i)*(k1+2*k2+2*k3+k4)/6;%数值解

end

y0=exp(a(i)*x)+x;%精确解

%figure()%如果叠绘图去掉此句命令

plot(x,y0)

holdon

plot(x,y,'*')

legend('精确解','数值解')

xlabel('x');

ylabel('y');

title(['微分方程数值解,a=',num2str(a(i)),',h=',num2str(h(i))],'FontSize',14);

gridon

end

 

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

当前位置:首页 > 党团工作 > 其它

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

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