MATLAB作业

发布 2022-09-20 19:05:28 阅读 1628

计算方法。

实验一方程求根。

班级:自动控制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 ...