matlab中欠定方程组超定方程组_数学建模中的方程组问题及Matlab求解

一、方程组

f (x)含三角函数、指数函数、或其他超越函数时,就是超越方程。

fcdb31268cbcb916a3daea7079b6b370.png

二、点迭代的步骤与问题

可以通过函数图像来确定函数实根的个数。

迭代步骤:

方 程 : f (x) = 0

构造迭代函数:x = jФ (x) 经过简单变形产生迭代序列:xn+1 = jФj (xn),n =0,1,… 给定迭代初值 x0

思考问题:2个

1.迭代表达式x = jФ (x)是否唯一?

2.迭代产生的序列是否一定会收敛?

三、点迭代举例-函数构造

例:用点迭代方法求解方程 x3 -x2 -x-1 = 0

解: 第一步 构造迭代函数: x=jФ (x)

c651aeb98b0b012ba88f37a0e6f4f5f2.png

迭代举例-Matlab实现程序

第二 / 三步 迭代+初始值

设定初值 x0=1,

xn+1 = jФ (xn),n =0,1,… 用 MATLAB 编程

x(1)=1;y(1)=1;z(1)=1; %初始点

for k=1:20

x(k+1)=x(k)^3-x(k)^2-1; % j 1 (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)

end

x,y,z

四、加速迭代函数

加速迭代收敛

若 x= jФ (x) 迭代不收敛,则不直接使用j (x)迭代,

而用由jФ (x)与x的加权平均:

h(x) = lλ Ф j (x)+(1- λ )l x

7610f6308460a982779b180be5500ea2.png

五、MATLAB求解

(1)Solve()语句的用法—符号求解

①单变量方程1)符号方程

f (x)= 0

例1: 求解方程 ax2+bx+c = 0

5b3f1d7939bbf98c6dce04fe46f8e00c.png

2)数值方程

例2: 解方程:x3-2x2=x-1

fd58ead1ed65469c63fdb0bbcfc3c62d.png

3)超越方程

例3:tan(x)-sin(x)=0

eabee9d78470759393b9bb1d583cd9c2.png

4)方程组

1、方程(组), f1(x) = 0,…, fn(x) = 0, x = (x1,…,xn) solve

solve('f1(x)’,'f2(x)’,…,'fn(x) ’)

例 4

9e828858cb3ad83ff789f593e6f16fb3.png

82978c54106d695063029673bf912c6f.png

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:求解方程组

1ee34251f6fe05c9eefc0b64cd16497a.png

解:1)建立方程组的M-函数文件(fun1.m)

function 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()语句的用法:

a6331df19fe2a06e4d33c7675a34775b.png

49f9ed5513a10c670a42e3a37dc987a1.png

roots()语句的用法

例7:求解多项式方程 x9+x8+1=0

18d26d3dd1dfee986c18755f640fd1a3.png

多项式方程: amxm+am-1xm-1+…+a0 = 0 roots

href="https://http://zhuanlan.zhihu.com/p/178108275/edit#_bookmark0">p=[am, am-1, …,a0];

roots(p)

特点:可以找出全部根。

线性方程组: AX = b

其中A是m×n阶矩阵,b是m维向量。

x=A b

href="https://zhuanlan.zhihu.com/p/178108275/edit#_bookmark0">or x=inv(A)*b

特点:只能求出一个特解。

2e389348b5681df3ec68f3ad395aacbf.png
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值