作业帮 > 综合 > 作业

Matlab求解一简单方程,请把m文件代码贴上,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 16:20:35
Matlab求解一简单方程,请把m文件代码贴上,
k,t是常数,theta是未知数
a=0:2:35
S=k*tan(theta)
T=a^2*dS/d(theta) 这个d是微分
theta=T/t;
plot(theta,a)
我只需要画出theta对a的函数图象.a的赋值方法见第一行.为了验证代码,可以给k和t
clear
>> syms theta k t a
S=k*tan(theta)
T=a^2*diff(S,theta)%这个d是微分
solve(theta-T/t,'theta')

S =

k*tan(theta)


T =

a^2*k*(tan(theta)^2 + 1)

Warning: Explicit solution could not be found.
没有解析的解
可以用数值的解法解 不过要指定 k t
再问: 我不需要解析解啊,我只需要画出theta对a的函数图象。另外a是一个矩阵,代码里不需要写成a.吗?能不能帮我改一下你的代码?多谢
再答: syms x k t a S=k*tan(x); T=a^2*diff(S,x);%这个d是微分 f=solve(x-T/t,'a'); k=2;t=3;f=subs(f); fplot(@(x)eval(f(1)),[0,50]) x=0:0.1:50; a=0:2:10; for a=0:2:10 y=0*x+a; hold on; plot(x,y)%交点坐标(theta,a) end ya=@(x)eval(f(1)); x=0:0.01:50; fa=feval(ya,x); figure; for a=0:2:10 y=0*x+a; [x0,y0] = intersections(x,fa,x,y); plot(x0,y0,'or')%交点坐标(theta,a) hold on end
再问: 这个结果不对啊。最后做出的结果应该类似这样。见附图 不好意思这么麻烦你,如果过能帮我做出来我再追加20分给你好吗?
再答: 你自己好好研究下这个方程,显然他有无穷多的解,你画得只是一组解而已