- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业一 1-1实验目的:寻求高效算法
实验内容:设,给出两个算法,求,写出MATLAB程序,并统计计算法计算量。若要计算量不超过20flop,应如何设计算法?
算法一
算法:
令,依次计算,最后用。
程序:
n=1023;
t=1+1/n;
t0=t;
for i=1:10
t=t^2;
end
t=t/t0;
disp(t);界面:
计算量:12flop
算法二
算法:
直接计算t的1023次方。
程序:
n=1023;
t=1+1/n;
x=t^1023;
disp(x);界面:
计算量:1024flop
若要计算量不超过20flop,采用第一种算法较合适。
作业二 3-5 实验目的:应用不同迭代法求解代数方程
实验内容:分别采用二分法、Newton法、Newton下山法、割线法求解方程
在[0.1,1]中的根;精确到。
二分法
算法:
为连续函数,且由题意可知[0.1,1]为含根区间,令a=0.1,b=1,取p=(a+b)/2。若f(p)=0则p是方程f(x)=0的解;若f(a)f(p)0则根在(a,p)内,取a1=a,b1=p;否则根在区间(p,b)内,取a1=p,b1=b。重复上述过程直到达到精度要求为止。
程序:
function y=f_3_5(x)
y=600*x^4-550*x^3+200*x^2-20*x-1;
function [p,k]=lab3_5_Bisection(max,a,b,e)
for k=1:max
p=(b+a)/2;
if f_3_5(p)==0 || (b-a)/2e
break;
elseif f_3_5(a)*f_3_5(p)0
a=p;
else
b=p;
end
end界面:
Newton法
算法:
建立牛顿迭代格式
直到小于精度要求时迭代结束,将作为结果输出。
程序:
function y=f2_3_5(x)
y=600*4*x^3-550*3*x^2+400*x-20;
function [p,k]=lab3_5_Newton(max,p0,e)
for k=1:max
p=p0-f_3_5(p0)/f2_3_5(p0);
if abs(p-p0)e
break;
end
p0=p;
end界面:
Newton下山法
算法:
建立迭代格式
其中是下山因子,在每步迭代中依次取1,1/2,1/4,…直到满足精度要求。
程序:
function [p,k]=lab3_5_Newton2(max,p0,tol,e)
for k=1:max
y=1;
p=p0-y*f_3_5(p0)/f2_3_5(p0);
while (abs(f_3_5(p))=abs(f_3_5(p0)) ye)
y=y/2;
p=p0-y*f_3_5(p0)/f2_3_5(p0);
end
if abs(p-p0)tol
break;
end
p0=p;
end界面:
割线法
算法:
建立迭代格式
直到小于精度要求时迭代结束,将作为结果输出。
程序:
function [p,k]=lab3_5_Secant(max,a,b,e)
for k=1:max
p=b-f_3_5(b)*(b-a)/(f_3_5(b)-f_3_5(a));
if abs(p-b)e
break;
end
a=b;
b=p;
end界面:
作业三 4-2 实验目的:熟悉LU分解法求解方程。
实验内容:用MATLAB编程做Doolittle分解,求解方程组。
算法:
对进行Doolittle分解使得,则线性方程组的求解问题就转化为对三角形方程组的求解。Doolittle分解过程为:
然后依次求解和:
程序:
function [L,U,x]=lab4_2(a,b)
n=length(a);
L=eye(n);
U(1,:)=a(1,:);
for k=2:n
if U(k-1,k-1)==0
disp(·??a꧰ü);
return;
end
L(k:n,k-1)=a(k:n,k-1)/U(k-1,k-1);
U(k,k:n)=a(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n);
if kn
a(k+1:n,k)=a(k+1:n,k)-L(
文档评论(0)