本文是自己总结数学实验和这本书的笔记2.
矩阵和线性方程组
实际的例子可化为线性方程组的解
x1−(0∗x1+0.65x2+0.55x3)=50000
x2−(0.25∗x1+0.05x2+0.1x3)=25000
x3−(0.25∗x1+0.05x2+0∗x3)=0
这个方程组可化为
X−XC=D
C=[0 0.65 0.55;0.25 0.05 0.1;0.25 0.05 0];
D=[50000 25000 0];
A=eye(3)-C;
X=A\D
X
非线性方程与迭代
非线性方程的解 f(X)=0
(1)图解法:
sin(x)=0.1x
fplot('sin(x)-0.1*x',[-10,10];
grid;%在画图上添加网格,更容易观察与横轴的交点,meshgrid是产生二维网格
zoom%可以使得图用鼠标变大
(2)迭代法:(迭代中的混沌参见《数学实验》p53)
newton迭代:
xk+1=xk−f(xk)f′(xk)
现在求解
xk+1=xk−x2k−3xk+exk−22xk−3+exk
e=1e-6;%10^-6 精度
format long;
x1=1;
x0=x1+2*e;
while(abs(x0-x1)>e)
x0=x1;x1=x0-(x0^2-3*x0+exp(x0)-2)/(2*x0-3+exp(x0))
end;
format
(3)fsolve和solve函数
solve是没有什么方法采用的得到近似解
fsolve最小二乘法,效果比fzero号但是容易陷入局部极值
例子:
4x1−x2+1/10∗ex1=1
−x1+4x2+1/8∗x12=0
fsolve:
function y=f(x)
4*x1-x2+1/10*e^{x1}=y1-1;
-x1+4*x2+1/8*{x1}^2=y2
存为eg.m
[x,y,f]=fsolve('eg',[0,0])%[0,0]是初始值
solve:
[x,y]=solve('eg',[0,0])
多项式的根
求 x3+2x2−5 的根
roots([1 2 0 -5])
一元函数的零点
用二分法和插值法来求零点,所以零点附近要变号
fzero(F,x,tol)F是函数,x为一个值时作为初值,当x为[a,b],显示在[a,b]的零点,tol表示精度