f (x)含三角函数、指数函数、或其他超越函数时,就是超越方程。
二、点迭代的步骤与问题
可以通过函数图像来确定函数实根的个数。
迭代步骤:
方 程 : f (x) = 0
构造迭代函数:x = jФ (x) 经过简单变形产生迭代序列:xn 1 = jФj (xn),n =0,1,… 给定迭代初值 x0
思考问题:2个
1.迭代表达式x = jФ (x)是否唯一?
2.迭代产生的序列是否一定会收敛?
三、点迭代举例-函数构造
例:用点迭代方法求解方程 x3 -x2 -x-1 = 0
解: 第一步 构造迭代函数: x=jФ (x)
迭代举例-Matlab实现程序
第二 / 三步 迭代 初始值
设定初值 x0=1,
xn 1 = jФ(xn),n =0,1,… 用 MATLAB 编程
x(1)=1;y(1)=1;z(1)=1; %初始点
for k=1:20
x(k 1)=x(k)^3-x(k)^2-1; % j 1 (x)
y(k 1)=(y(k)^2 y(k) 1)^(1/3); % j 2 (y)
z(k 1)=1 1/z(k) 1/z(k)^2; % j 3 (z)
end
x,y,z
四、加速迭代函数
加速迭代收敛
若 x= jФ (x) 迭代不收敛,则不直接使用j (x)迭代,
而用由jФ (x)与x的加权平均:
h(x) = lλ Ф j (x) (1- λ )l x
五、MATLAB求解(1)Solve()语句的用法—符号求解①单变量方程1)符号方程
f (x)= 0
例1: 求解方程 ax2 bx c = 0
2)数值方程
例2: 解方程:x3-2x2=x-1
3)超越方程
例3:tan(x)-sin(x)=0
4)方程组
1、方程(组), f1(x) = 0,…, fn(x) = 0, x = (x1,…,xn) solve
solve('f1(x)’,'f2(x)’,…,'fn(x) ’)
例 4
2、方程(组), f1(x) = 0,…,fn(x) = 0, x = (x1,…,xn) fsolve
x = fsolve (‘fun’, x0)
fun.m
function f = fun(x)
f(1)= f1(x) ;
……
f(n)= fn(x) ;
fsolve()语句的用法—数值求解
例5:求解方程组
解:1)建立方程组的M-函数文件(fun1.m)
function eq=fun1(x)
eq(1)=2*x(1)-x(2)-exp(-x(1));
eq(2)=-x(1) 2*x(2)-exp(-x(2));
在命令窗口中输入如下命令: [x,fv]=fsolve(@fun1,[0,0])
%x为方程组的解,fv为解对应的函数值
输出结果为:x= 0.5671 0.5671
fzero()语句的用法:roots()语句的用法
例7:求解多项式方程 x9 x8 1=0
多项式方程: amxm am-1xm-1 … a0 = 0 roots
p=[am, am-1, …,a0];
roots(p)
特点:可以找出全部根。
线性方程组: AX = b
其中A是m×n阶矩阵,b是m维向量。
x=A \b
or x=inv(A)*b
特点:只能求出一个特解。
,