数值分析编程总结Word格式文档下载.docx

上传人:b****2 文档编号:15085817 上传时间:2022-10-27 格式:DOCX 页数:19 大小:24.25KB
下载 相关 举报
数值分析编程总结Word格式文档下载.docx_第1页
第1页 / 共19页
数值分析编程总结Word格式文档下载.docx_第2页
第2页 / 共19页
数值分析编程总结Word格式文档下载.docx_第3页
第3页 / 共19页
数值分析编程总结Word格式文档下载.docx_第4页
第4页 / 共19页
数值分析编程总结Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数值分析编程总结Word格式文档下载.docx

《数值分析编程总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数值分析编程总结Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

数值分析编程总结Word格式文档下载.docx

1

x(j)=y(j)-u(j)*x(j+1);

数值试验:

n=101;

a=1210………………………………..….0

1121………………………………..…0

01121………………………..…0

001121……………………0

1

112

关键是如何定义上述矩阵:

>

c1=ones(1,n-1);

a1=diag(c1,-1);

这个-1说明行位置-1

c2=12*ones(1,n);

a2=diag(c2);

c3=ones(1,n-1);

a3=diag(c3,1);

a=a1+a2+a3;

3.拉格朗日插值

functionyh=lage(x,y,xh)

n=length(x);

m=length(xh);

yh=zeros(1,m);

c1=ones(n-1,1);

c2=ones(1,m);

xp=x([1:

i-1i+1:

n]);

yh=yh+y(i)*prod((c1*xh-xp'

*c2)./(x(i)-xp'

*c2));

x=[11,12];

y=[2,4];

xh=[11.75];

lage(x,y,xh)

ans=

3.5000

4最小二乘法

1.最小二乘的xi和yi为:

xi

1953

1964

1982

1990

2000

yi

5.82

6.95

10.08

11.34

12.66

要拟合的函数为:

y=a+bx-cxy注意不是多项式

2.编程函数为:

functionz=erchen(x,y)

x1=ones(5,1);

A=[x1,x,-x.*y];

注意点乘

z=A\y;

注意左除

a=z

(1);

b=z

(2);

c=z(3);

end

输入:

≻≻x=[19531964198219902000]'

;

≻≻y=[5.826.9510.0811.3412.66]'

≻≻erchen(x,y)

2.9456=a

-0.0014=b

-0.0005=c

0.25

0.5

0.75

1.284

1.6487

2.1170

2.7183

y=a+bx+cx2是多项式

functionz=erchen2(x,y)

A=[x1,x,x.^2];

≻≻x=[00.250.50.751.00]'

≻≻y=[1.001.2841.64872.11702.7183]'

≻≻erchen2(x,y)

1.0051

0.8642

0.8437

最小二乘多项式拟合的简单函数方法:

≻≻P=polyfit(x,y,2)要拟合成4次,则2改成4就可以了

P=

0.84370.86421.0051注意此内置函数输出的结果c,b,a是反的

5复合辛普森公式求解积分

先定义函数:

functionv=f(x)

v=sin(x);

“若定义有除数要点除,分母有0时要特殊定义”

定义程序:

functionI=fsps(f,a,b,n)

h=(b-a)/n;

x=linspace(a,b,2*n+1);

y=feval(f,x);

I=(h/6)*(y

(1)+2*sum(y(3:

2:

2*n-1))+4*sum(y(2:

2*n))+y(2*n+1));

fsps('

f'

0,1,4)

0.4597

6.不动点迭代思路

不动点迭代常常有好几个迭代的不动点函数,所以要分别定义这些函数是很困难的,如是乎使用SWITCH内置函数进行切换,叫切换函数.

1.先定义函数后进行编程的方法

先需要定义不动点函数:

v=x^3-x-1;

再定义编程:

function[it,x]=fixpnt1(f,a,maxit,tol)

it=0;

x=feval(f,a);

whileit<

=maxit&

abs(x-a)>

tol,

it=it+1;

a=x;

x=feval(f,a);

此函数的调用:

fixpnt1('

f'

2,100,1e-5)

3.利用切换函数SWITCH的方法(多个不动点迭代函数)

function[x,it]=fixpnt(np,a,maxit,tol)

switchnp,

case1,

phi=inline('

(3*x+10)^(1/5)'

);

case2,

sin(10*x)+2*cos(x)-3'

case3,

3-atan(x)'

case4,

-2-1/log(x^2+x+1)'

x=phi(a);

x=phi(a);

使用与输入:

fixpnt(2,1,100,1e-5)

-4.2696

7.雅可比迭代

function[xit]=jacobi(A,b,tol)

D=diag(diag(A));

L=D-tril(A);

U=D-triu(A);

x=zeros(size(b));

forit=1:

500

x=D\(b+L*x+U*x);

error=norm(b-A*x)/norm(b);

if(error<

tol)

break;

8.高斯迭代

function[xit]=gaosi(A,b,tol)

x=(D-L)\(b+U*x);

9.SOR迭代

function[xit]=SOR(A,b,w,tol)

x=(D-w*L)\(w*b+(1-w)*D*x+w*U*x);

10.二分法:

1.先要定义所求的函数:

2.二分法程序如下:

function[x,it]=erfengfa(a,b,f,tol)

fa=feval(f,a);

fb=feval(f,b);

whileabs(b-a)>

tol,

x=a/2+b/2;

fx=feval(f,x);

ifsign(fx)==sign(fa),

a=x;

fa=fx;

else

b=x;

fb=fx;

11.牛顿法:

先需要定义不动点函数

需要计算的函数f

functionv=f(x)

v=x^5-3*x-10;

需要计算的函数的导数g

functionv=g(x)

v=5*x^4-3;

2.再定义编程:

functionv=newton(a,f,g,maxit,tol)

x=a;

whileit<

abs(feval(f,x))>

it=it+1;

x=x-feval(f,x)/feval(g,x);

v=[x,it];

12.牛顿下山法:

functionv=f(x)

v=x^2+sin(10*x)-1

functionv=g(x)

v=2*x+10*cos(10*x)

2.再定义编程1:

functionv=newtonxiashang(x0,f,g,maxit,tol)

x=x0;

d=-feval(f,x)/feval(g,x);

lambda=1;

isdone=0;

while~isdone,

xn=x+lambda*d;

ifabs(feval(f,xn))<

abs(feval(f,x)),

isdone=1;

elselambda=lambda*0.5;

x=xn;

3.再定义编程2:

functionv=newtonxiashang2(x0,f,g,maxit,tol)

whileabs(feval(f,x+lambda*d))>

=abs(feval(f,x)),

lambda=0.5*lambda;

x=x+lambda*d;

v=[x,it];

13.割线法

先需要定义函数

functionv=gexian(a,b,f,maxit,tol)

x0=a;

x=b;

w

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

当前位置:首页 > PPT模板 > 商务科技

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

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