实验报告—代数方程与微分方程求解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实 验 报 告 四

代数方程求解

1、【示例】以下命令可求出方程 (x +1)e –x +e x sin x =0在0附近的一个根:

>>y=sym('(x+1)*exp(-x)+exp(x)*sin(x)'); % 用sym 命令定义符号表达式

>>x=solve(y,'x') % 用准解析方法求出方程最接近0的一个根

x =-0.86508244315736795185621568221837

或可用以下命令求解该方程以指定点为初始搜索点的数值解:

>> y=inline('(x+1)*exp(-x)+exp(x)*sin(x) ', 'x'); % 用数值方法求解时,方程要用inline 命令定义 >> x=fsolve(y,0) % 用数值方法从初始点1开始搜索方程的近似解 x = -0.8651

注:准解析命令solve 只能求出方程最接近0的一个实数根,而数值解法fsolve 可以通过初始搜索点的变化,得到不同的解(如果方程有多个实数解)。

【要求】仿照示例,用准解析方法求出30.5sin(42)4cos(2)0.5t t e t e t --++=的一个根;再用数值方法分别求该方程在-0.6和3附近的两个根。

y=sym('exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5');

t=solve(y,'t')

t =0.67374570500134756702960220427474

y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t');

t=fsolve(y,0.6)

t =

0.6737

y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t');

t=fsolve(y,3)

t =

2.5937

2、【示例】以下命令可求解非线性方程组339820

x y x x y ⎧+-=⎨+-=⎩

>> eq1=sym('x^3+y^3-x-98'); % 定义第一个方程表达式

>> eq2=sym('x+y-2'); % 定义第二个方程表达式

>> [x,y]=solve(eq1,eq2) % 解方程组(用准解析方法)

x =

13/12+1/12*2329^(1/2)

13/12-1/12*2329^(1/2)

y =

11/12-1/12*2329^(1/2)

11/12+1/12*2329^(1/2)

或可用以下命令求解上述方程组以指定点为初始搜索点的数值解:

>> f=inline('[x(1) ^3+x(2) ^3-x(1)-98; x(1)+x(2)-2]', 'x'); % 用inline 命令定义方程组

>> x=fsolve(f,[1;1]) % 用数值方法从初始点(1,1)开始搜索方程组的一个近似解 x =

-2.9383

4.9383

【要求】仿照示例,求解

(1)方程35323=+-x x x 和方程组⎪⎩

⎪⎨⎧-==+=++14

30122yz z x x x 35323=+-x x x

(1)y=sym('x^3-3.*x^2+5*x');

x=solve(y,'x')

x =

1.

1.+1.4142135623730950488016887242097*i

1.-1.4142135623730950488016887242097*i

(2)y=inline('x^3-3.*x^2+5*x-3 ', 'x');

x=fsolve(y,0)

x =

1.0000

⎪⎩⎪⎨⎧-==+=++14

30122yz z x x x

(1)eq1=sym('x^2+2*x+1');

eq2=sym('x+3*z-4');

eq3=sym('y*z+1');

[x,y,z]=solve(eq1,eq2,eq3)

x =-1

y =-3/5

z =5/3

(2)f=inline('[x(1)^2+2*x(1)+1; x(1)+3*x(3)-4;x(2)*x(3)+1]', 'x');

x=fsolve(f,[1;1;1])

x = -0.9979

-0.6003

1.6660

(2)方程组x 2+y =0, e x +sin y =0在[-5,5]内的所有根。

>> ezplot('-x^2',[-5,5])

>> hold on

>> ezplot('asin(-exp(x))',[-5,5])

-5-4-3-2-10

12345-1

-0.8

-0.6

-0.4

-0.2

x

asin(-exp(x))

f=inline('[x(1)^2+x(2); exp(x(1))+sin(x(2))]', 'x');

x=fsolve(f,[-0.7,-0.5])

x =

-0.7150 -0.5112

3、【示例】以下命令可求解线性方程组

124

1234

1234

1234

2328

522

37

42212

x x x

x x x x

x x x x

x x x x

-+=

⎪+++=

-+-=

⎪+++=

。计算A*x,即可验证求解结果。

>> A=[2 -3 0 2;1 5 2 1;3 -1 1 -1;4 1 2 2]; % 定义方程组的系数矩阵>> B=[8 2 7 12] ' ; % 定义方程组的常数项向量>> x=A\B % A\B为A左除B,即A-1B x =

3.0000

0.0000

-1.0000

1.0000

【要求】执行以上命令,并仿照示例,解线性方程组

123

23

123 241658 32710 117331 x x x

x x

x x x

++=⎧

-=

⎪+-=

A=[24 16 5;0 3 -27;11 7 -3]; B=[8 10 31]';

x=A\B

x = 19.4087

-27.5410

-3.4305

相关文档
最新文档