专业:检测技术与自动化装置。
班级:研1106
姓名:宋振。
学号:2011020164
组员:牟森林。
学号:2011020162
题一:用牛顿迭代法求方程 x^3+10*x-20=0 的根。
牛顿迭代法的源**:
本程序使用牛顿迭代法可以求解任何多项式方程的根,程序调用matlab求导函数,可以自动的求解牛顿迭代法要使用的多项式对应函数的导数。
wrieted by songzhen 2011.10.22
clear清除内存。
syms x定义符号变量。
f = x^3+10*x-20输入求解的方程。
dfdx = diff(f,x计算求解方程函数的微分。
x0=1.5设定迭代初始值。
s=1设置精度存储,并设定初值使其通过循环语句。
while (abs(s)>0.0001设定循环的精度(注意这里有个绝对值函数必须用)
s=(subs(f,x,x0))/subs(dfdx,x,x0));带入牛顿迭代法公式。
x0=x0-s存储迭代出来的根。
end程序结束。
end程序运行结果:
可是无论精度去多么小,这个算法,只迭代不超过5次,说明牛顿迭代法收敛极快。运行如下:
应能注意到上面的s设置已经很小了;但是只是迭代了5次。
题二:求解下列方程的根。
4x1-x2+x3 =6
x1-4.25x2+2.75x3 =-0.5
x1-2.75x2+3.5x3 =1.25
程序源**:
%本程序时使用“高斯消去法”进行线性方程的求解。
%本程序可实现任意阶线性方程的求解,解向量存储于x向量中。
%程序具有一定的容错能力,给出不可求解的提示。
%但是对于可解决的错误并未编写解决程序。
%writed by songzhen 2011.10.23
clear清除内存变量
a = 4 -1 1 6
-1 4.25 2.75 -0.5输入求解方程的矩阵。
n,m]=size(a判断输入方程的合法性。
if (m~=(n+1))
error('输入方程格式错误');方程合法性出错给出提示。
else高斯迭代法变换上三角矩阵。
for k=1:n-1循环进行行变换。
if a(k,k)==0
error('出现无效的变换元素');当首行出现0元素时,无法进行变换。
此时可以互换行解决。
但是没有编写相应的程序,直接给出错误提示。
else for i=k+1:n内部循环解决行变换。
l=a(i,k)/a(k,k
a(i,:)a(i,:)l*a(k进行行变换循环化为上三角矩阵。
endend
endend
回带求解各个x解向量元素。
x(n)=a(n,m)/a(n,n先求x(n)的解。
for k=1:n-1
p=0清零临时变量以备下回循环。
for i=1:k
p=p+a(n-k,m-i)*x(m-i循环回带求解各个解向量元素。
endx(n-k)=(a(n-k,m)-p)/a(n-k,n-k);
end程序结束。
end程序运行结果:
上面a矩阵是变换完毕后的上三角矩阵,x是求解的结果。
程序参考了图书馆matlab工程计算的一本书。
数值分析作业
12.求在 0,1 上的一次最佳平方逼近多项式与二次最佳平方逼近多项式。函数 function s zjpfbj n,a,b 创建一个函数,里面填入次数,和区间范围。base inline x j 1 x j 定义多项式。quan inline 1 x 权函数。a zeros n 1 y zeros...
数值分析作业
实验2.2算法设计与比较。实验目的 编制不同方法的matlab程序,这些方法的计算效果和特点。问题提出 非线性方程的数值解法很多,不同的方法效果如何,要靠计算的实践来分析 比较。实验内容 考虑下列算法 1 牛顿法 2 弦割法 3 抛物线法。分别编写它们的matlab程序。牛顿法程序 function...
数值分析作业
数值分析上机作业。zhh mushan 班级 土木工程一班。姓名 赵惠惠。班级 2010510359 二零一一年六月 舍入误差与有效数。一 问题说明。1 设,其精确值为。1 编制按从小到大的顺序计算通用程序。2 编制按从小到大的顺序计算通用程序。3 按两种顺序分别计算并指出有效位数。编制程序用单精度...