如何用Matlab解方程,如何用编程方法解方程
一、方程组
f (x)包含三角函数、指数函数或其他超越函数时,为超越方程。
二、点迭代的步骤与问题
一个函数的实根的个数可以通过函数图像来确定。迭代步骤:
等式:f (x)=0
构造一个迭代函数:x=j(x)并通过简单变形生成一个迭代序列:xn 1=jj(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 0,1,…用MATLAB编程:x(1)=1;y(1)=1;z(1)=1;% k=1:20 x(k1)=x(k)3-x(k)2-1的初始点;% J1(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)endx,y,z
四、加速迭代函数
加速迭代收敛如果x=j(x)迭代不收敛,则不直接使用j (x)迭代。
以及由j(x)和x的加权平均值:
h(x)=lj(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)求解。
求解(& amp#039;f1(x)'& amp#039;f2(x)'…,& amp#039;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)。
函数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根
p=[am, am-1, …,a0];
roots(p)
特点:可以找出全部根。
线性方程:AX=b
其中a是mn矩阵,b是m维向量。
x=A \b
or x=inv(A)*b
特点:只能求出一个特解。
用vb编程求解方程;解方程的计算方法。