MATLAB基础篇——数值分析篇

本文介绍了MATLAB中用于解决基础数学问题的方法,包括方程求解(solve与fsolve)、非线性方程组求解(fsolve)以及常微分方程的数值解(ode函数)。通过实例演示了如何使用这些工具求解二次方程、非线方程及微分方程组,适合初学者理解MATLAB在数值计算中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MATLAB基础篇——数值分析篇

1.solve求解方程/方程组(不涉及微积分运算)
格式:
syms 符号变量(要求解的变量)
solve(方程左边==方程右边,符号变量)

例子:
(1)求解方程 x 2 − x − 6 = 0 x^2-x-6=0 x2x6=0
(2)求方程组 y 2 + x − 6 = 0 , x 2 + y − 6 = 0 y^2+x-6=0,x^2+y-6=0 y2+x6=0,x2+y6=0的解


clear
clc
%T1
syms x
x=solve(x^2-x-6==0,x)

clear
syms x y
[x,y]=solve(x^2+y-6==0,y^2+x-6==0,x,y)


%结果:
 
x =
 
 -2
  3
 
 
x =
 
                2
               -3
 21^(1/2)/2 + 1/2
 1/2 - 21^(1/2)/2
 
 
y =
 
                2
               -3
 1/2 - 21^(1/2)/2
 21^(1/2)/2 + 1/2

2.fsolve/fzero求解非线性方程/方程组

fsolve(fun,x0),fun为待求方程(组),x0为初始值,fzero类似

例子:
(1)求方程 x − e − x = 0 x-e^{-x}=0 xex=0
(2)求方程组 x 1 − 0.5 s i n x 1 − 0.3 c o s x 2 = 0 , x 2 − 0.5 c o s x 1 + 0.3 s i n x 2 = 0 x_1-0.5sinx_1-0.3cosx_2=0,x_2-0.5cosx_1+0.3sinx_2=0 x10.5sinx10.3cosx2=0,x20.5cosx1+0.3sinx2=0
(3)求解 x 2 e − x 2 = 0.2 x^2e^{-x^2}=0.2 x2ex2=0.2

clear
clc
%T1
x=fsolve(@(x) x-exp(-x),0)
%T2
clear
x=fsolve(@fun,[0.1,0.1])
function f=fun(x)
f(1)=x(1)-0.5*sin(x(1))-0.3*cos(x(2));
f(2)=x(2)-0.5*cos(x(1))+0.3*sin(x(2));
end

%T3
x=fzero(@(x) x^2*exp(-x^2)-0.2,0)


%结果
%T1
x =

    0.5671
    
%T2
x =

    0.5414    0.3310

x =

   -0.5091

3.常微分方程的数值解
ode函数,常用的求解函数
ode45(@fun,自变量的取值范围,初值)
ode15s(@fun,自变量的取值范围,初值)

function f=f(x,y)
f表示dy/dx

常微分方程组求解则是将因变量y和导函数f当作向量处理即可;涉及高阶导,则需要化成一阶微分方程组求解

例子
在这里插入图片描述

%第一题
ode45(@(x,y) 8-3*y,[0,1],2)

%第二题
ode15s(@fun,[0,1],[1,3])
function f=fun(x,y)
d1y=y(2);
d2y=2.*x.*d1y./(1+x.^2);
f=[d1y;d2y];
end

%第三题
ode45(@fun,[0,1],[1,2,3,4])
function f=fun(x,y)
d1y=y(2);
d2y=y(3);
d3y=y(4);
d4y=2*d3y-d2y;
f=[d1y;d2y;d3y;d4y];
end

%第四题
ode15s(@fun,[0,1],[3/2,0])
function f=fun(t,y)
d1y=-3*y(1)-y(2);
d2y=exp(t)+3*y(2)+2*y(1)
f=[d1y;d2y];
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yun_gao_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值