数值解比解析解有什么优点

歪脑袋2022-10-04 11:39:541条回答

已提交,审核后显示!提交回复

共1条回复
站在墙外等红杏 共回答了11个问题 | 采纳率90.9%
数值解容易算,能求出解析解的方程类型是很少的,但几乎所有的都能求出数值解,数值解虽然是近似值,但对于许多方程,近似解可以足够精确,满足应用需求,编程易实现,可以分析误差的界.
1年前

相关推荐

求助MATLAB高手帮忙解决偏微方程数值解
求助MATLAB高手帮忙解决偏微方程数值解
如果给定x范围在(0,10),怎样求出f(x)的数值解呢
652248251年前1
华士 共回答了18个问题 | 采纳率94.4%
这只有一个自变量啊,不是偏微分方程.用高数解决下就行了,y=-5x+1.不需要数值解法吧.
即使要用数值解也很简单,步骤如下:
变化为f(x)+xf'(x)+10x=0,f(x)用y来表示,用不大精确的差分来计算
y(i)+x(i)*(y(i+1)-y(i))/(x(i+1)-x(i))+10x(i)=0
变形化简为
y(i+1)=y(i)-(y(i)+10x(i))*dx/x(i)
因为x=0时上述式子无意义,所以分母中的x(i)用x(i)+0.5dx代替,dx是步长,i代表你划分的等分数的某一个点,若划分为100等分,则dx=(10-0)/100=0.1
这样就得到
y(1)=1-(1+10*0)*0.1/0.05=-1
y(2)=-1-(-1+10*0.1)*0.1/0.15=-1
...
y(100)=-49.2538-(-49.2538+10*9.9)*0.1/9.95=-49.7538
很初略,划分得越细,结果越精确.
Matlab最高可以对几次多项式进行因式分解?最多可以求几次多项式的根(数值解亦可)?
Matlab最高可以对几次多项式进行因式分解?最多可以求几次多项式的根(数值解亦可)?
如题,想做个Logistic map内寻找周期为3以上倍分支区间的程序,但是要涉及到解高次的多项式的问题……
所以就来问下:Matlab里的多项式因式分解最多支持到多少次?然后最多可以求多少次多项式的根?
求根的话,数值解也好(已经不奢求解析解了),可以不要复数解或者奇特的解但是所有位于区间(0,4)的解必须全能解出.
苇潮1年前1
招募队员 共回答了17个问题 | 采纳率94.1%
如果用roots求多项式的根
matlab的算法是转化为求多项式伴随矩阵的特征值
matlab最多可以支持多大的矩阵,就能算几阶的多项式
不知道你最高要算到几阶的多项式,一般应该够用的吧.
不过会返回全部根,包括实根和虚根,重根也会返回多个
最后根据所需区间要舍去不需要的
求大神帮忙用matlab求解微分方程的数值解
衣稀1年前1
ljp8126 共回答了22个问题 | 采纳率95.5%
请参考ode45函数的用法
将所求值设为终值即可
数学中的解析解和数值解有什么不同?
老汤1年前1
flying_of_heart 共回答了17个问题 | 采纳率94.1%
解析解是内在关系的函数表达式描述,而数值解只是解析解的数值近似.
数值解和解析解的概念分别是什么?
weijpk1年前1
xgzls2007 共回答了14个问题 | 采纳率71.4%
数值解是在特定条件下通过近似计算得出来的一个数值
而解析解为该函数的解析式
请问如果有两个方程,三个未知数a,b,c,如何通过制定一个数比如a,来计算出相应的b和c的数值解呢?
请问如果有两个方程,三个未知数a,b,c,如何通过制定一个数比如a,来计算出相应的b和c的数值解呢?
比如让a从0增到2,步长0.1
2,方程如下
sqrt[a^2+b^2-2b+2]*(1-b)=sqrt[b^2+c^2-2c+2]*b;
sqrt[b^2+c^2-2c+2]*(1-c)=sqrt[c^2+a^2-2a+2]*c;
matlab或者mathematica都行,请指教,
飘飘ID已存在1年前2
m1c6d 共回答了21个问题 | 采纳率95.2%
第一个式子先解出C
第二个式子解出b,
只能如此了
【高等数学】求用matlab得出某物理题中微分方程的数值解
【高等数学】求用matlab得出某物理题中微分方程的数值解

程序如下:
function dx=DOF2_m(t,x)
dx=zeros(4,1);
global k
%-------------------
L2=9;
L0=10;
E=2.05e11;
I=0.063528;
rou=7.85e3;
A=0.114976;
mc=1.2e4;
md=3e4;
mj=6.2e5;
g=9.8;
m1=rou*A;
k=24*E*I/(L2^3);
m=2*m1*L2*156/420+mj;
M=m+mc;
%----------------------------------------------
if t<=3
Q=3e4;
else
Q=0;
end
%---------------------------------------------------------------
dx(1)=x(2);
dx(2)=(-md*L0*dx(4)*cos(x(3))+md*L0*(x(4)^2)*sin(x(3))-k*x(1)+Q)/(M+md);
dx(3)=x(4);
dx(4)=(-dx(2)*cos(x(3))-g*sin(x(3)))/L0;
end

运行以下文件求解:
global k
[t,y]=ode45('DOF2_m',[030],[0 0 0 0]);
Fx=-k*y(:,1)/2;
subplot(3,1,1)
Sta=y(:,3)*180/pi;
plot(t,Sta,'m')
grid on
xlabel('t/s','fontsize',18);
ylabel('¦È/rad','fontsize',18);

subplot(3,1,2)
plot(t,y(:,1))
grid on
xlabel('t/s','fontsize',18);
ylabel('Ux/m','fontsize',18);

subplot(3,1,3)
plot(t,Fx(:,1))
grid on
xlabel('t/s','fontsize',18);
ylabel('Fx/N','fontsize',18);
友谊长存121年前2
拖把拖把 共回答了14个问题 | 采纳率92.9%
运行没有问题,我把m文件和结果图都发给你,你看看,






MATLAB题,用到欧拉公式求微分方程的数值解
MATLAB题,用到欧拉公式求微分方程的数值解
用向前欧拉公式和改进欧拉公式求微分方程y'=x-2y,y(0)=2,0
猪猪j1年前1
yicaiyy422 共回答了20个问题 | 采纳率85%

%欧拉法解一阶常微分方程%例子dy/h=-y+x+1%f=inline('-y+x+1','x','y'); %微分方程的右边项
f = inline('x-2*y','x','y');y0 = 2; %初始条件h = 0.025; %步长xleft = 0; %区域的左边界xright = 1; %区域的右边界x = xleft:h:xright;n = length(x);
%前向欧拉法y = y0;for i=2:n y(i)=y(i-1)+h*f(x(i-1),y(i-1)); endplot(x,y,'ro');hold on;
%改进欧拉法y = y0;for i=2:n y(i)=y(i-1)+h/2*( f(x(i-1),y(i-1))+f(x(i),y(i-1))+h*(f(x(i-1),x(i-1)))); endplot(x,y,'g+');
%精确解用作图xx = x;f = dsolve('Dy=x-2*y','y(0)=2','x');%求出解析解y = subs(f,xx); %将xx代入解析解,得到解析解对应的数值
plot(xx,y);legend('前向欧拉法','改进欧拉法','解析解');

我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,
我要用mathematica求一个方程组的数值解,可是应该是程序有问题出不来结果,麻烦你帮我看看,
是要求这个方程组的x'[t]=-ax[t],y'[t]=x[t],x'[0]=0,y'[0]=0,求它的数值解,可以的话再画出图来,其中a是常数,我取了a的值为4/3.
ClearAll["Global`*"];
s1 = NDSolve[{x'[t] == -4 x[t]/3,y'[t] == x[t],x[0] == 0,
y[0] == 1},{x[t],y[t]},{t,0,20}]
x[t] = x[t] /.s1
y[t] = y[t] /.s1
ParametricPlot[{x[t],y[t]},{t,0,20},AspectRatio -> Automatic]
jtwlx1年前3
jojo_yan 共回答了12个问题 | 采纳率91.7%
x[t],y[t]

x[t] = x[t] /.s1
y[t] = y[t] /.s1
有 Syntax错误,这样整体赋值将导致 x[其它] 无定义.
不妨改成:
ClearAll["Global`*"];
s1 = NDSolve[{x'[t] == -4 x[t]/3,y'[t] == x[t],x[0] == 0,
y[0] == 1},{x,y},{t,0,20}]
ParametricPlot[{(x[t] /.s1)[[1]],(y[t] /.s1)[[1]]},{t,0,20},
AspectRatio -> Automatic]
-------------------------
如果非要赋值,请这样:
ClearAll["Global`*"];
s1 = NDSolve[{x'[t] == -4 x[t]/3,y'[t] == x[t],x[0] == 0,
y[0] == 1},{x,y},{t,0,20}]
X[t_] := (x[t] /.s1)[[1]]
Y[t_] := (y[t] /.s1)[[1]]
ParametricPlot[{X[t],Y[t]},{t,0,20},AspectRatio -> Automatic]
--------------------------
剩下的就只剩微分方程本身的问题了
常微分方程数值解的定义?
上vv妖儿1年前2
tanzhifa 共回答了28个问题 | 采纳率82.1%
MATLAB数学建模算法上面有详细介绍.
求泊松方程的数值解如何进行稳定性分析啊?
xiangtianxiao1年前1
xiaoyuxiang_8 共回答了16个问题 | 采纳率93.8%
对椭圆方程一般是不提稳定性的,而只提其差分格式的收敛性,因为其不含对时间t的偏导.具体可参见 陆金甫 关冶 《偏微分方程数值解法》.
matlab 求微分方程初值问题的符号解,并与数值解进行比较
matlab 求微分方程初值问题的符号解,并与数值解进行比较





为什么我这么打错了?
>> [x,y]=dsolve('x*(D2y)+(1-n)*(Dy)+y=0','y(0)=0','Dy(0)=0','x')
Warning:Solutions are possibly missing.[solvini]

Warning:Explicit solution could not be found.
> In dsolve at 197
x =
[ empty sym ]
y =
[]
zp0002361年前1
Doris123456 共回答了18个问题 | 采纳率94.4%
y=dsolve('x*(D2y)+(1-2)*(Dy)+y=0','y(0)=0','Dy(0)=0','x')
y =
C6*x*besselj(2,2*x^(1/2))
微分方程的数值解是什么意思?
就是爱你cc1年前2
滨燕天天 共回答了14个问题 | 采纳率100%
顾名思义,就是方程的数值结果.
微分方程的解,分为解析解和数值解,前者反映的是微分方程的解,可以用一个函数表示;后者同常不能表为初等函数,但是很多问题,我们并不需要解析解,而是能求出一个数值结果就满足了.
举例说,我们希望知道,一个质点从竖直平面内的光滑半圆轨道一端,从静止开始下滑,求质点转过45度经历的时间.这个问题导致一个貌似很简单的一个微分方程:
y'=1/sqrt(sin(x)),即导函数为正选函数平方根的倒数,其解析解不能表示为初等函数形式,但是对于这个问题,我们倒是可以得到任意精确的数值解.
论述Matlab数值微积分的求解方法(极限,导数,数值求和,数值积分,极值数值求解,常微分方程数值解)
论述Matlab数值微积分的求解方法(极限,导数,数值求和,数值积分,极值数值求解,常微分方程数值解)
是一道论述题,语言越简介越好,只要求个概述就行了,谢谢!
月夏竹影1年前1
pch09 共回答了24个问题 | 采纳率91.7%
建议你用maple
用Matlab求微分方程数值解怎么求3*(X'(t))^2*x''(t)=3x^2+cosx的数值解
娃哈哈einv1年前0
共回答了个问题 | 采纳率