- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程实验报告
COURSE PAPER
课程名称: 数值代数与计算方法
课 程 号:
授课教师:
学 号:
姓 名:
所 属: 计算机科学与工程
打印时间: 2015
评 语:
题目一:
算法:
对于问题一:
对于问题二:
直接编写递归函数程序,算出三个差分方程的10个近似值
程序:
1)
%main.m
clc;
clear all;
a=1;
b=-2;
c=-3;
[x1,x2]=roots(a,b,c)
%roots.m
function [x1,x2]=roots(a,b,c)
d=sqrt(b*b-4*a*c);
if d0
x1=(-2*c)/(b+d);
x2=(-b-d)/(2*a);
elseif d0
x1=(-b+d)/(2*a);
x2=(-2*c)/(b-d);
end
2)
%solu.m
function [X,R,P,Q]=solu(X0,R0,P0,P1,Q0,Q1)
X(1)=X0;
R(1)=R0;
P(1)=P0;
P(2)=P1;
Q(1)=Q0;
Q(2)=Q1;
for i=1:9
X(i+1)=X(i)/2;
X(i)=X(i+1);
end
for i=1:9
R(i+1)=R(i)/2;
R(i)=R(i+1);
end
for i=3:10
P(i)=3/2*P(i-1)-1/2*P(i-2);
P(i-1)=P(i);
P(i-2)=P(i-1);
end
for i=3:10
Q(i)=5/2*Q(i-1)-Q(i-2);
Q(i-1)=Q(i);
Q(i-2)=Q(i-1);
end
%Xn.m
clc;
clear all;
X0=1;
R0=0.994;
P0=1;
P1=0.497;
Q0=1;
Q1=0.497;
[X,R,P,Q]=solu(X0,R0,P0,P1,Q0,Q1);
for i=1:10
x(i)=i;
end
plot(x,X-R,r*);
hold on
结果:
1)
x1 =
3
x2 =
-1
2)
题目二:
算法:
1、
此题我们以第一个式子为例,求出
g(Xn+1)= (2/(2+3*Xn-Xn.^3))^(1/2)
2、利用二分法:
利用牛顿迭代法,并根据题目提示的立方根算法:
此题我们以第三个式子为例:,设A=71/3 ,求出x的3次方便是近似值。
程序:
1、
%fixpt.m
function [k,p,err,P]=fixpt(p0,tol,max1)
P(1)=p0;
for k=2:max1
P(k)=g(P(k-1));
err=abs(P(k)-P(k-1));
relerr=err/(abs(P(k))+eps);
p=P(k);
if (errtol)||(relerrtol),
break;
end
end
if k==max1
disp(maximum number of iterations exceeded)
end
P=P;
%g.m
function y=g(x)
y=sqrt(2/(2+3*x-x.^3));
%iteration.m
clc;
clear all;
p0=0.5;
tol=1.0e-9;
max1=20;
[k,p,err,P]=fixpt(p0,tol,max1);
2、
二分法:
%bisect.m
function [c,err,yc,k,an,cn,bn,ycn]=bisect(a,b,delta)
ya=f(a);
yb=f(b);
an(1)=a;
bn(1)=b;
if ya*yb0
disp(No Root in this district!);
end
max1=1+round((log(b-a)-log(delta))/log(2));
for k=1:max1
c=(a+b)/2;
cn(k)=c;
yc=f(c);
ycn(k)=yc;
if yc==0
a=c;
an(k+1)=a;
文档评论(0)