计算方法。
实验一方程求根。
班级:自动控制093班。
宿舍:八公寓323宿舍。
姓名:庄倩倩 200908801
胡瑞 200908803
刘银梅 200908809
李艳芳 200908812
丁春平 200908816
姚小娇 200908819
2024年4月27日。
一、实验目的。
用各种方法求任意实函数方程f(x)=0在自变量区间[a,b]上,某一点附近的实根。
二、实验内容。
1)二分法。
在区间上[0,1]用二分法求方程+10x-2=0的近似根。要求误差不超过0.5×。
源程序:function x=agui_bisect(fname,a,b,e)
fname为函数名,a,b为区间端点,e为精度。
fa=feval(fname,a)
fa=feval(fname,b)
if fa*fb>0 error('两端函数值为同号');end
k=0x=(a+b)/2
while(b-a)>(2*e)
fx=feval(fname,x)
if fa*fx<0
b=x;fb=fx;
elsea=x;
fa=fx;
endk=k+1
x=(a+b)/2
end执行结果:
图1 二分法求方程的根。
fa=-1 fb=10.7183 k=0 x=0.5000
fx=4.6487 k=1 x=0.2500
fx=1.7840 k=2 x=0.1250
fx=0.3813 k=3 x=0.0625
fx=-0.3105 k=4 x=0.0938
fx=0.0358 k=5 x=0.0781
fx=-0.1375 k=6 x=0.0859
fx=-0.0509 k=7 x=0.0898
fx=-0.0076 k=8 x=0.0918
fx=0.0141 k=9 x=0.0908
fx=0.0033 k=10 x=0.0903
x=0.0903
图2 二分法求方程的根。
2)迭代法。
取初值=0,用迭代公式=,(k=0,1,2,…)求方程 +10x-2=0的近似根。要求误差不超过0.5×。
源程序:function x=agui_iterative(fname,x0,e)
fname为函数名,x0为迭代初值,e为精度,n为最大迭代次数(默认为 100)
n=100;
x=x0;x0=x+2*e;
k=0;while abs(x0-x)>e & kdisp(x)
endif k==n warning('已达最大迭代次数')
end执行结果:
图3 迭代法求方程的根
3)牛顿迭代法。
取初值=0,用牛顿迭代法求方程+10x-2=0的近似根。要求误差不超过0.5×。
源程序:function x=agui_newton(fname,dfname,x0,e)
n=100;
x=x0;x0=x+2*e;
k=0;while abs(x0-x)>e&kk=k+1
x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);
disp(x)
endif k==n warning('已达到最大迭代次数');end
执行结果:图4 牛顿迭代法求方程的根。
matlab作业
2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...
matlab作业
matlab语言 第3次作业 字符串,单元数组和结构体 专业 海洋技术 海洋测绘方向 姓名 张体强学号 1026222 1 如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。1....
matlab作业
电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...