MATLAB 方程数值求解

 

一、实验目的

(1)掌握代数方程数值求解的方法

(2)掌握常微分方程数值求解的方法

二、实验原理与实验设备

原理计算机编程相关知识技能和MATLAB软件编译环境

设备:计算机与MATLAB软件

三、方程数值求解

  1. 求代数方程的数值解。

(1)3x+sinx-ex=0 在x0=1.5附近的根。

(2)在给定的初值x0=1,y0=1,z0=1下,求方程组的数值解。

sin(x)+y2+ln(z)-7=0

3x+2y-z3+1=0

x+y+z-5=0

(1)函数文件:

function g =diliucishiyan3_1hanshu_1(x)

g = 3*x+sin(x)-exp(x);

end

(1)脚本文件:

clear;

clc;

fzero('diliucishiyan3_1hanshu_1',1.5)

(1)结果展示:

(2)函数文件:

function F = diliucishiyan3_1hanshu_2(X)

x = X(1);

y = X(2);

z = X(3);

F(1) = sin(x)+y^2+log(z)-7;

F(2) = 3*x+2^y-z^3+1;

F(3) = x+y+z-5;

end

(2)脚本文件:

clear;

clc;

X = fsolve('diliucishiyan3_1hanshu_2',[1 1 1]',optimset('Display','off'))

(2)结果展示:

  1. 求微分方程的数值解,并绘制解的曲线。

d2y/dx2-5*dy/dx+y=0

y(0)=1

y’(0)=1

函数文件:

function dydt = diliucishiyan3_2hanshu(t,y)

dydt = [y(2);5*y(2)-y(1)];

end

脚本文件:

clear;

clc;

[t,y] = ode45(@diliucishiyan3_2hanshu,[0 1],[1; 1])

plot(t,y(:,1),'-o',t,y(:,2),'-o')

title('d2y/dx2-5*dy/dx+y=0');

xlabel('Time t');

ylabel('Solution y');

legend('y_1','y_2')

结果展示:

  1. 分别用3种不同的数值方法解线性方程组。

6x+5y-2z+5u=-4

9x-y+4z-u=13

3x+4y+2z-2u=1

3x-9y+2u=11

代码展示:

clear;

clc;

A = [6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];

b = [-4 13 1 11]';

fa_1 = A\b

fa_2 = inv(A)*b

[L,U] = lu(A);

fa_3 = U\(L\b)

结果展示:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SZTU_青衫酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值