A. matlab中求二阶微分方程 的解析解和数值解,并在同一图形中画出解析解和数值解的图形进行比较
在MATLAB中,可以求解二阶微分方程的解析解和数值解,并在同一图形中画出解析解和数值解的图形进行比较。
首先,求解析解。使用dsolve函数求解微分方程:(1+x^2)*D2y=2*x*Dy,初始条件为y(0)=1,Dy(0)=3。
命令为:
y=dsolve('(1+x^2)*D2y=2*x*Dy','y(0)=1','Dy(0)=3',x)
求得解析解为:y = x*(x^2 + 3) + 1。
接下来,求数值解。编写函数myfun.m:
function dy=myfun(x,y)
dy=zeros(2,1)
dy(1)=y(2);
dy(2)=2*x*y(2)/(1+x^2)
调用ode45函数求解:
[x45,y45]=ode45('myfun',[0 10],[1 3])
绘制数值解图形:
plot(x45,y45,'+')
hold on
x1=0:0.5:10;
y1=subs(y,x1);
plot(x1,y1,'o')
通过上述步骤,可以得到二阶微分方程的解析解和数值解,并在同一图形中比较它们的差异。
解析解和数值解的图形将在同一坐标系中显示,便于直观对比两者之间的差异。
解析解为一条曲线,数值解通过离散点表示,通过比较这两者,可以评估数值解的准确性。
在实际应用中,解析解和数值解往往存在差异,这种差异通常称为误差。通过对比解析解和数值解,可以了解数值方法的误差范围。
上述方法不仅适用于二阶微分方程,也可以应用于其他类型的微分方程,只需相应调整dsolve和ode45函数中的参数即可。
B. matlab中如何输出数值解
1、打开matlab软件主界面,如图所示。
C. matlab7.0用数值法解三角函数方程
用割线法求解三角函数方程x^4-3*x^3+5*cos(x)+8=0,在区间【0,4】内的一个解。
首先,建立自定义函数文件,保存在当前文件夹内。即 fun.m
function y = fun(x)
y=x^4-3*x^3+5*cos(x)+8;
end
然后,建立用割线法的数值方法编写的运行代码文件,保存在当前文件夹内。即 secant.m
最好,在当前命令窗口下执行下列语句。
>> x0=0;x1=4;tol=1.0e-5;secant(x0,x1,tol) (回车)
%说明:x0为初值,;x1为终值,tol为误差值
得到如下解
n = 19 即计算次数
ans = 2.8642 即x值