如何用Matlab解方程,如何用編程方法解方程
一、方程組
f (x)包含三角函數(shù)、指數(shù)函數(shù)或其他超越函數(shù)時,為超越方程。
二、點迭代的步驟與問題
一個函數(shù)的實根的個數(shù)可以通過函數(shù)圖像來確定。迭代步驟:
等式:f (x)=0
構(gòu)造一個迭代函數(shù):x=j(x)并通過簡單變形生成一個迭代序列:xn 1=jj(xn),n=0,1,給定初始迭代值x0。
思考問題:2
1.迭代表達式x=j(x)唯一嗎?
2.迭代產(chǎn)生的序列一定會收斂嗎?
三、點迭代舉例-函數(shù)構(gòu)造
例:用點迭代法求解方程x3 -x2 -x-1=0。
解法:第一步,構(gòu)造一個迭代函數(shù):x=j(x)
迭代實例——MATLAB實現(xiàn)程序第二/第三次迭代的初始值: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
四、加速迭代函數(shù)
加速迭代收斂如果x=j(x)迭代不收斂,則不直接使用j (x)迭代。
以及由j(x)和x的加權(quán)平均值:
h(x)=lj(x)(1-)l x
五、MATLAB求解
(1)Solve()語句的用法—符號求解
一元方程1)符號方程f (x)=0
例1:解方程ax2 bx c=0
2)數(shù)值方程
例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()語句的用法—數(shù)值求解
例5:求解方程組解法:1)建立方程組的M函數(shù)文件(fun1.m)。
函數(shù)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是解對應(yīng)的函數(shù)值。
輸出結(jié)果是: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編程求解方程;解方程的計算方法。