MATLAB实验七--答案
时间:2025-07-08
时间:2025-07-08
实验七:代数方程与微分方程的近似解实验目的:
1、掌握MATLAB多项式运算的命令和方法;
2、掌握MATLAB求解非线性方程和方程组的基本方法,并对结果作出初步的分析;
3、掌握MATLAB求解微分方程和方程组的基本方法,并对结果作出初步的分析;
实验内容
1.
2.
3.
4.多项式的建立、求根、求值以及多项式的四则运算。利用fzeros、solve命令求非线性方程的解利用fsolve、dsolve命令求解非线性(微分)方程(组)的解利用ode函数系列求解微分方程,并能进行简单应用。
实验要求
1、学生在实验操作过程中自己动手独立完成,1人为1组。
2、完成实验报告:按照试验的每个题目的具体要求完成
实验数据记录及分析(命令与结果)
1、已知一个多项式p(x) 3x 4x 5x 7x 5,计算:
(1)计算p(x) 0的全部根
p=[304-5-75];
x=roots(p)
(2)由方程p(x) 0的根构造一个多项式g(x),并与p(x)进行比较
g=poly(x)
poly2sym(g,'x')
g(x)的第一个系数为1,与p(x)的成比例532
(3)计算x 1,2.5,5,6.5时,p(x)的值
p=[304-5-75];
x=[-12.556.5];
y=polyval(p,x)
2、设有两个多项式f(x) 3x 5x 2x 3x 3x 5,g(x) 3x 5x 3
(1)求f(x) g(x),f(x) g(x)54322
河南财经政法大学数学与信息科学学院1
f=[3-52-335];
g=[00035-3];
f+g
f-g
(2)求f(x)g(x),f(x)/g(x)
f=[3-52-335];
g=[00035-3];
l=conv(f,g)
[k,r]=deconv(f,g)
3、求方程10x e 2 0的根,要求画出曲线图形,确定根所在的区间;利用fzero函数求解方程的根
ezplot('10*x+exp(x)-2')
gridon
根所在区间为[0,2];
fzero('10*x+exp(x)-2',[0,2])x
sinx y z2ex 4 0 4、求方程组 在(1,1,1)附近的解并对结果进行验证。要求编写x yz 0
xy z 0
函数m文件格式,利用fsolve求解方程组
方法一:
f='[sin(x(1))+x(2)+x(3)^2*exp(x(1))-4,x(1)+x(2)*x(3),x(1)*x(2)-x(3)];
[xy,f,exit]=fsolve(f,[1,1,1]',optimset('Display','off'))
方法二:
functionf=myfun(x)
f=[sin(x(1))+x(2)+x(3)^2*exp(x(1))-4,x(1)+x(2)*x(3),x(1)*x(2)-x(3)];
[xy,f,exit]=fsolve(@myfun,[1,1,1],optimset('Display','off'))
5、求平面3x 5y 6z 0与平面x 3y 6z 1 0的交线与球面x y z 9 0的交点。222
[x,y,z]=solve('3*x+5*y+6*z','x-3*y-6*z-1','x^2+y^2+z^2-9','x','y','z')
河南财经政法大学数学与信息科学学院2
%Myfun.m文件:
functionf=myfun(x)
f=[3*x(1)+5*x(2)+6*x(3),
x(1)-3*x(2)-6*x(3)-1,
x(1)^2+x(2)^2+x(3)^2-9]
%在给定初值(1,-2,1)下调用fsolve函数求解
clc
clear
xyz=fsolve(@myfun,[1,-2,1]',optimset('Display','off'))
6、求微分方程dy ytanx cos2x的解析解,并加以验证(代入原方程)dx
y=dsolve('Dy+y*tan(x)=cos(x)^2','x')
symsx;
simplify(diff(y)+y*tan(x)-cos(x)^2)
7、求微分方程y sin2x y在初始条件y(0) 0,y (0) 1下的特解,并画出解函数的图形。
y=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x')
ezplot(y);
gridon
特解:y=5/3*sin(x)-1/3*sin(2*x)
dx dt x y 0
8、求微分方程组 在初始条件x(0) 1,y(0) 0下特解,并画出解函数图形dy x y 0 dt
[x,y]=dsolve('Dx+x+y=0','Dy-x+y=0','x(0)=1','y(0)=0''t')
ezplot(x,y,[0,1]);
gridon
特解:x=exp(-t)*cos(t)
y=exp(-t)*sin(t)
河南财经政法大学数学与信息科学学院3
dy x 2y9、求微分方程 dx的数值解,求解范围为区间[0,1]
y(0) 1
fun=inline('x+2*y','x','y');
[x,y]=ode23(fun,[0,1],1)
dy3y3x x(e cosx) 2x dxx10、求微分方程 的数值解,求解范围为区间[ ,2 ],并画出2 y( ) (e 1) 3
数值解和解析解的图形
数值解:
fun=inline('((3*y)/x+x^3*(exp(x)+cos(x))-2*x)','x','y');
[x,y]=ode23(fun,[pi,2*pi],(exp(pi)+2/pi+1)*pi^3)
plot(x,y,'r*')
解析解:
y=dsolve('Dy=(3*y)/x+x^3*(exp(x)+cos(x))-2*x','y(pi)=(exp(pi)+2/pi)*pi^3','x')
ezplot(y,[pi,2*pi])
或者
x=[pi:0.1:2*pi];
y=x.^3.*(exp(x)+sin(x)+2./x);
plot(x,y);
holdon;
fun=inline('3*y/x+x^3*(exp(x)+cos(x))-2*x','x','y');
[x,y]=ode23(fun,[pi,2*pi],(exp(pi)+2/pi+1)*(pi)^3);
plot(x,y,'r');
xlabel('x');
ylabel('y');
d2ydy11、求解初值问题 2 y cos(x),y(0) 0,y (0) 1.5的数值解和通解,并画2dxdx
出数值解和特解图形(用ode23或ode45)
一、
首先令:y1=y,y2=dy/dx则原方程可化为:dy2/dx=cos(x)-y1-2*y2,y1(0)=0,y2(0)=1.5functionyprime=verderpol(x,y)
yprime=[y(2);cos(x)-y(1)-2*y(2)];
clear;
y0=[0;1.5];
subplot(2,1,1)
[x,y]=ode23('verderpol',[0,40],y0)
plot(x,y(:,1),'rd')
河南财经政法大学数学与信息科学学院4
或:(subplot(2,1,1)
[x1,y1]=ode45('verderpol',[0,40],y0)
plot(x1,y1(:,1),'bo'))
y=dsolve('D2y+2*Dy+y=cos(x)','y(0)=0','Dy(0)=1.5','x')
subplot(2,1,2)
ezplot(y)
特解:y=exp(-x)*x+1/2*sin(x)
d3ydy12、求解 2 y 6,y(0) 3y (0) 0,y (0) 1的数值解和特解,3dxdx
并画出数值解和特解图形
一、
首先令:y1=y,y2=dy1/dx,y3=dy2/dx,y4=dy3/dx,y1(0)=3,y2(0)=0,y3(0)=1
functionyprime=verderpol(x,y)
yprime=[y(2);y(3);-2*y(2)-y(1)+6];
clear;
y0=[3;0;1];
subplot(2,1,1)
[x,y]=ode45('verderpol',[0,40],y0)
plot(x,y(:,1),'rd')
y=y=vpa(dsolve('D3y+2*Dy+y=6','y(0)=3','Dy(0)=0','D2y(0)=1','x'),4)
subplot(2,1,2)
ezplot(y)
二、functiondy=verderpol22(t,y)
dy=zeros(3,1);
dy(1)=y(2);
dy(2)=y(3);
dy(3)=-2*y(2)-y(1) …… 此处隐藏:2213字,全部文档内容请下载后查看。喜欢就下载吧 ……