我是靠谱客的博主 高高戒指,最近开发中收集的这篇文章主要介绍matlab程序圆形牛栏,Matlab课本计算题.doc,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Matlab课本计算题

Matlab计算题:

农夫老李有一个半径为10m的圆形牛栏,里面长满了草,老李要将家里的一头牛拴在牛栏边的一根栏桩上,要求只让牛吃到圆形牛栏中的一半的草,请问栓牛鼻的绳子应为多长?

答案为11.5873米

程序如下。

clear,clc,close all

syms R;

cos_r=(200-R^2)/200;

cos_R=R/20;

afa_r=2*acos(cos_r);

afa_R=2*acos(cos_R);

f=50*afa_r+R^2*afa_R/2-50*sin(afa_r)-R^2*sin(afa_R)/2-pi*100/2;

R=solve(f);

disp(['栓牛鼻子的绳长应为:',num2str(eval(R)),'米。'])

syms x y

f1=x^2+y^2-100;

f2=(x-10)^2+y^2-R^2;

ezplot(f2 ,[-12,12])

axis([-12,12,-12,12])

axis square

hold on

plot([0 10],[0 0],'*b')

ezplot(f1,[-10,10])

hold off

问题1 求总造价最小的P点坐标

f=inline('3000*x/(225+x^2)^(1/2)-1500*(30-x)/((30-x)^2+100)^(1/2)')

%对总造价函数的导函数通过二分法求零点,来求最值

a=0;

b=30;

dlt=1.0e-3; %根据题意,误差小于10

k=1;

while abs(b-a)>dlt

c=(a+b)/2;

if f(c)==0

break;

elseif f(c)*f(b)<0

a=c;

else

b=c;

end

fprintf('k=%d,x=%.3fn',k,c);

k=k+1;

end

X=c

3,有一艘宽为5m的长方形驳船欲驶过某河道的直角弯,经测量知河道的宽度为10m和12m,试问,要驶过该直角湾,驳船的长度不能超过多少米?(误差<0.001m)

驳船的长度问题:

P81

1,某农夫有一个半径10米的圆形牛栏,长满了草,他要将一头牛拴在牛栏的边界的栏桩上,但只让牛吃到一半的草,问栓牛鼻的绳子应为多长?

解:

clear;

syms a t x;

y=pi/2*a*a-pi*a*x-int('sqrt(a*a+2*a*(t-x)-t*t)-sqrt(a*a-t*t)','t',x,a);

%y=subs(y,a,10);

f=inline(char(y));

x=fzero(char(y),1)

L=sqrt((110-x)^2+10^2-x^2)

2.如图所示,为了在海岛I与某城市C之间铺设一条地下光缆,每千米光缆铺设成本在水下部分是C1,在地下的部分是C2,为使的铺设该光缆的总成本最低,光缆C1的转折点P(海岸线上)应取在何处? 如果实际测得海岛I与城市C之间水平距离L=30km,海岛距海岸垂直距离h1=15km,城市距海岸线垂直距离h=10km,C1=3000万元/km,C2=1500万元/km,求p点坐标(误差《10-3km)

解:

syms h1 h2 l c1 c2 x;

y=c1*sqrt(h1^2+x.^2)+c2*sqrt(h2^2+(l-x)^2);

dy=diff(y,x)

f=subs(dy,{h1,h2,l,c1,c2},{15,10,30,3000,1500});

x0=fzero(char(f),15)

ymin=subs(y,{h1,h2,l,c1,c2,x},{15,10,30,3000,1500,x0});

3.有一艘宽为5m的长方形驳船,欲过某河道的直角弯,经测量知河道的宽度10m和12m,如图所示,设问,驳船要驶过直角弯,驳船的长度不能超过多少米?(误差<10?3m)

4.一个对称的地下油库内部设计到如图所示:横截面为园,中心位置的半径为3m,上下地面的半径2m,高为12m,纵截面的两侧顶点在中心位置的抛物线,试求:

(1)油库内油面的深度h(从底部算起)时,库内油量容积v(h);

(2)设计测量油库油量的标尺,即为油量容积v已知时,算出油的深度h出油量大小。试给出当V

解:

clear;

syms R r H h t;

y=R-4*(R-r)/H^2*(H/2-t)^2;

V=pi*int(y^2,t,0,h);

V=subs(V,{R,r,H},{3,2,12});

Vh=subs(V,h,0:12);

fprintf('V: h: n')

for i=1:27

hV(i)=fzero(inline(char(V-i*10)),0);

fprintf('%d %.4fn',i*10,hV(i))

end ?10

最后

以上就是高高戒指为你收集整理的matlab程序圆形牛栏,Matlab课本计算题.doc的全部内容,希望文章能够帮你解决matlab程序圆形牛栏,Matlab课本计算题.doc所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部