matlab 方程式,Matlab-方程式求根

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 = ...

递归函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值