微分方程数值解、拓补学、泛函分析哪个好学

马化腾讯2022-10-04 11:39:541条回答

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

共1条回复
leslies 共回答了17个问题 | 采纳率94.1%
看来你是数学学院的大二或者大三学生,微分方程数值解相对简单点,拓扑学、泛函分析抽象些,后面这两门课程是你以后继续学习的基础,无论你做数学那个方向的研究,这两门课你都必须学,就象热门的金融数学,也必须学,而且要学好
1年前

相关推荐

MATLAB 求解微分方程数值解
MATLAB 求解微分方程数值解
y”+0.1905*y’*y-0.357y=0,y’(0)=0,y(0)=3

计算x在0~100的数值解.
求给个计算结果 或者MATLAB代码么……
不胜感激涕零……(^o^)/~
jqh9991年前1
pigtheer 共回答了21个问题 | 采纳率81%
结果:

代码:
clear all
clc
f=@(x,y)([y(2);
0.357*y(1)-0.1905*y(1)*y(2)]);
[x,Y]=ode45(f,[0 100],[3 0]);
plot(x,Y(:,1),x,Y(:,2)),legend('y','dy/dt')
xlabel('x')
matlab求微分方程数值解在【1,4】求微分方程xy'-x*x*xsin(x)+1=0,y(0)=1;的数值解,并作图
wuhao01092021年前1
晕品醉爱 共回答了24个问题 | 采纳率91.7%
syms x y t;
S=dsolve('Dx=-10*x+10*y','Dy=28*x-y-x*z','Dz=-8/3*z+x*y','x(0)=0','y(0)=0','z(0)=1','t');
x=S.x
y=S.y
z=S.z
hold on;
ezplot(x);
ezplot(y);
ezplot(z);
%祝楼主学有所成 嘿嘿
请采纳答案,支持我一下.
mathematica 画微分方程数值解
mathematica 画微分方程数值解
y' (x) = y (x)*(1 - y (x)) 当 y(0)=-2时 -10≤x≤10 得图像应该怎么画
luotch1年前1
七然 共回答了22个问题 | 采纳率86.4%
sy = DSolve[{y'[x] == y[x]*(1 - y[x]),y[0] == -2},y[x],x]
Plot[sy[[1,1,2]],{x,-10,10}]
matlab求数值微分麻烦各位大侠帮我求一下用matlab求一下微分方程数值解,其中h(0)=0.01,0
沙漠狂风1年前1
wehave 共回答了14个问题 | 采纳率92.9%
[t,h]=ode45(inline('(1.299*sin(pi*t/40)/20-0.00145*sqrt(h))/sqrt(0.15*h-h^2)','t','h'),[0,40],.01);%注意:t>1.899时h为复数,这和分母根式中小于0有关
mathematica 微分方程数值解的引用
mathematica 微分方程数值解的引用
我解出了微分方程的数值解,想画出这个数值解得积分,怎么办?
不行,,,ganwei***的答案还是不行....
lilaike0001年前1
让个性飞扬 共回答了21个问题 | 采纳率100%
Plot[Evaluate[y[t]/.solution1],{t,0,10},PlotRange->All]
t的范围自己调
我试的明明可以.你的Mathematica是几?我用的7
起码也要用6.5的功能太弱了.
试着在NDSolve前加:ClearAll[y,t],运行,然后紧接着运行这两条语句.也可能你的错误是因为别的地方定义了y或者t.
微分方程数值解问题什么情况下的为方程只能求数值解,常微分,偏微分?
心星灯1年前2
adci17805 共回答了21个问题 | 采纳率85.7%
你这问题,问得太大了.
现在只能知道,一些方程包括常微分,偏微分没有解析解.但判定一个方程是否有解析解的办法还没有.
另外,就算方程有解析解,也不一定能用初等积分办法解出这个解析解.
mathematica 画微分方程数值解
mathematica 画微分方程数值解
求y'(t)=y^2+t^2,y(0)=0的解的图像!
talentyao1年前1
wdf830313 共回答了21个问题 | 采纳率90.5%
tt1=NDSolve[{D[y[t],t][Equal]y[t]^2+t^2,y[0][Equal]0},y,{t,-2,2}]
{{y -> InterpolatingFunction[{{-2.,2.}},""]}}
Plot[y[t] /.tt1,{t,-2,2}]
MATLAB微分方程数值解如何精确定位特定一点处的解
MATLAB微分方程数值解如何精确定位特定一点处的解
我想问的问题比较难表示,所以我用下面一个例子来说明我的问题
这是一个用到简单微分方程的物理情景
一个质量m=100kg的物体从高处竖直落下,加速度会受到空气阻力的影响,这里简单的认为重力加速度g=9.8不变,空气阻力f=k*v^2 ,k=1.只考虑竖直方向速度v,竖直位移都以向下为正.初位移都为0;
那么有以下微分方程:
dy/dt=v
dv/dt=9.8-1*v^2/m
m=100,v0=y0=0
然后我用MATLAB的ode45函数求这个微分方程的数值解
先编写函数
function dx=fun(t,x)
% x(1)表示下落的距离y(向下为正),x(2)表示下落速度v(向下为正)
k=1; % k=1为表示空气阻力的一个常量,这里简化空气阻力f=k*v^2
m=100;% m为质量=100kg
dx=zeros(2,1);
dx(1)=x(2); % 下落距离对时间的导数=速度
a=9.8-(k*x(2)^2)/m;% a加速度(向下为正)=重力加速度 - 空气阻力产生的加速度
dx(2)=a; % 速度对时间的导数=加速度
end
现在我想要得到t=15s时的位移和速度
那么输入
[T,X]=ode45('fun',[0,15],[0 0]);
返回的X中的最后一列就是我想要的值;
但假如我想知道当竖直向下的位移刚好=100米时的时间和速度,那该怎么办?现在我的做法是先将解一个充分大的时间,然后在里面找位移在100两侧的时间和速度,再通过插值得到位移刚好=100时的时间和速度.但这样很麻烦,也不见得准确,MATLAB有什么自带的语句能实现这个功能吗?或是有什么更好的方法?
huazhong2501年前1
shiruiming 共回答了15个问题 | 采纳率80%
在不知道结果时间的时候是需要先设定一个比较大的时间范围计算的
但是并不需要将整个范围的结果都算出来再插值
这个时候可以设定触发事件函数在一定条件下停止计算
用odeset可以为ode45求解器设定触发事件的函数
详细的用法要仔细查看matlab的帮助文件,这里我以你的题目,举个例子
微分方程还是用你的函数fun
在用ode45解方程之前,再写一个函数:事件触发函数eventfun,
它的格式固定要返回三个值,这三个值的意思是
当第一个值vaule的值到达0时,时间会触发
而根据第二个值isterminal设置,触发时间会否终止求解
第三个值是设置触发过0的方向
function [value,isterminal,direction] = eventfun(t,x)
value=x(1)-100; %触发时间,当其值为0的时候,时间会触发
isterminal=1; %设为1时会,触发时间会停止求解器,设0时触发不影响工作
direction=1; %触发方向设1时是上升触发,设-1是下降触发,设0是双向触发
end
写好fun和eventfun之后,你就可以调用ode45解方程了
但用ode45之前记得先用odeset,将触发函数加入哦
op=odeset('Events',@eventfun);
[T,X,Tend,Xend,evennum]=ode45(@fun,[0,15],[0 0],op);
这样你看看,到达100米时,求解器就停住了
细心的你注意,ode45多返回了Tend,Xend,evennum三个参数
第一个Tend是触发事件发生的时间
第二个Xend是触发时间发生时刻的X
第三个evenum是标识触发事件的编号
由于这里只设置了一个触发事件,所以编号肯定是1
其实你也可以将该时间isterminal设为0
那么求解器不会因为触发事件而停止15秒内的解都会算出
你仍旧可以根据Tend 和 Xend得到到达100米时的时间和状态
额外提示,有时候你不知道到底取多大的时间范围才能够等到你要的触发时间
那么你可以用循环判断的方法,先设一个时间范围,然后求解
到最后都没有等到触发事件(Tend和Xend都是空矩阵)
那么适当延长求解时间区间,将上次的最后时刻和状态作为初始状态
再一次求解时间范围更大的解,如此直到找到触发事件才停止
用Matlab求微分方程数值解怎么求3*(X'(t))^2*x''(t)=3x^2+cosx的数值解
娃哈哈einv1年前0
共回答了个问题 | 采纳率