我的代码附在图片中。如何将解 y(x) 绘制为 x 的函数?这个 BVP y(x) 的解由命令 dsolve({de, ics}) 给出 enter image description here
with(DEtools);
w := 20
t := 5
L := 200
Base_TD := 0
End_TD := 100
x0 := 100
K := 350*10^(-6)
h := 850*10^(-12)
de := diff(y(x), x, x) = 2*h*(w + t)*y(x)/(K*w*t) - (x - x0)^2
dsolve(de)
ics := y(0) = Base_TD, D(y)(100) = -h*End_TD/K
dsolve({de, ics})
答案 0 :(得分:0)
你可以精确地或数字地解决这个问题。
他们的情节非常吻合。
restart;
w := 20: t := 5: L := 200:
Base_TD := 0: End_TD := 100: x0 := 100:
K := 350*10^(-6): h := 850*10^(-12):
de := diff(y(x), x, x)
= 2*h*(w + t)*y(x)/(K*w*t)
- (x - x0)^2:
ics := y(0) = Base_TD,
D(y)(100) = -h*End_TD/K:
精确求解,然后绘制绘图,
exactsol := dsolve({de, ics}):
PE := plot(rhs(exactsol), x=0..100):
数值求解(即生成一个程序,在需要的时间点进行数值求解),然后绘制绘图,
numericsol := dsolve({de, ics}, numeric):
PN := plots:-odeplot(numericsol,[x,y(x)],
x=0..100,
thickness=5,color=green):
将两者放在一起显示以进行比较
plots:-display(PN,PE);
检查第二个边界条件,
evalf(ics);
numericsol(100);
plots:-odeplot(numericsol,[x,diff(y(x),x)],
x=90 .. 100,
thickness=5,color=green);