09方程式求根
1.公式求解——符号变量
syms 变量名 / x= sym(‘x’); 创建一个符号变量
y = x^2 - 2*x 由符号变量定义的函数 ,是符号函数
solve(方程式,自变量) 解出方程式的根 syms x;
y = x*sin(x) - x;
solve(y,x); %即解 y = 0
ans = 0 pi/2; %解出的 ans 仍然是 symbolic类型的
解二元一次联立方程式 syms x y
eq1 = x - 2*y -5;
eq2 = x + y - 6;
A = solve(eq1,eq2,x,y)
A.x % ans = 17/3
A.y % ans = 1/3
代数代表系数求解 syms x y a b
y = a*x^2 -b %solve(a*x^2-b)
solve(y,x)
%ans = b^(1/2)/a^(1/2) -b^(1/2)/a^(1/2)
diff() 符号变量计算微分 syms x
y = 4*x^5;
yprime = diff(y) % yprime = 20*x^4;
int() 符号变量计算积分 z = ∫ y dx = ∫x2*e2 dx z(0) = 0;
subs() 带入值计算 例如:subs (z,x,0) 即将x = 0带入 z(x) syms x;
y = x^2*exp(x);
z = int(y); % z = exp(x)*(x^2 - 2*x + 2)
z = z -subs(z,x,0); % z = exp(x)*(x^2 - 2*x + 2) - 2
2.绘图求解 利用plot()系列函数
3.数值求解
内建函数数值求解——函数指针
根值求解的两个算法1.bracketing methods -->Bisection Method 在一个区间内二分法不断计算
条件: 1.函数连续 2.f(left)·f(right) < 0 然后再寻找重点f(mid),二分迭代
类似折半查找,当满足停止条件时 解算出根值
2.Open methods --> 牛顿法 给出一个initial guess 进行不断计算
当 1.误差范围达到或者2.迭代次数满足时 计算就会停止
fsolve() f(x) = 1.2x + 0.3 + x·sin(x) f2 = @(x) (1.2*x + 0.3 + x*sin(x));
fsolve(f2,0) % 0是initial guess 猜测值 函数用来做初识二分法 解算 的
% ans = -0.3500
fzero() f(x) = x^2 此函数只有在函数穿过x轴时才解算的出来,切过也不行 f = @(x) x.^2;
fzero(f,0.1) % 0.1为initial guess 猜测值
option增加参数:提高迭代次数,降低误差范围 来获得一个更加准确的根 f=@(x)x.^2
options=optimset('MaxIter',1e3,'TolFun',1e-10);
fsolve(f,0.1,options);
fzero(f,0.1,options);
roots 多项式求解 roots([1 -3.5 2.75 2.125 -3.875 1.25]);
% ans = ...
递归函数