工程与科学Matlab实现第三章课后个人解

在读普通大学生,都是个人见解,可以私信或者留言讨论,谢绝领导指示,第二章我把实现的结果也放出来,发现太长了,这次就不放实现结果,放代码,并且随着本人学习的深入,很多东西可能会回来再改,非定稿,不对请轻喷。

3.1

function V=Volume(R,d)
%Volume(R,d) 对于某一圆矩形容器,在已知R,d的情况下可得到其内部液体体积
%d为液体体积,R为圆容器高的参数,也为容器底面圆半径
if d<=R
    V=1/3*pi*R^2*d
elseif d>3*R
    error('water is fall');
else R<d<=3*R
    V=1/3*pi*R^2*R+pi*R^2*(d-R)
end

3.2

function F= futureworth(P,i)
%futuerworth为计算其将金额为P的钱存入一个账户后能得到的终值
%P为本金,i为利息率。
n=[1:1:10];
P=input('您的本金是:');
i=input('利息率为:');
F=P.*(1+i).^n;
z=[n;F];
fprintf('    n      F\n');
fprintf('%5d %10.3f\n',z);
end

3.3

function A= huankuane(P,i)
%函数huankuane描述根据借款额P与利息率i计算年度还款额。
n=1:1:5;
P=input('您的借款额为:');
i=input('您的利息率为:');
A=P*(i*((1+i).^n))./(((1+i).^n)-1);
z=[n;A];
fprintf('    n      A\n');
fprintf('%5d %8.3e\n',z);
end
 

3.4

function []=ripinjun(Tmean,Tpeak)【直接【】可避免在代码结束输出后再输出一个ans】
%T为计算日平均温度
t=[180:1:242];w=0.017;tpeak=205;   %第二小问,第一小问把矩阵t改一下就好了。
Tmean=input('请输入年平均温度:');
Tpeak=input('请输入峰值温度:');
T=Tmean+(Tpeak-Tmean).*cos(w.*(t-tpeak))
end

3.5

function []=sinjishu(x)
Q=sin(0.9);
V1=x;                    
wucha1=(Q-V1)/Q; 
percentage1=sprintf('%2.5f%%',abs(wucha1*100)) 
yijie=sprintf('%2.5f',V1)
V2=x-x^3/factorial(3);    
wucha2=(Q-V2)/Q; 
percentage2=sprintf('%2.5f%%',abs(wucha2*100))
erjie=sprintf('%2.5f',V2)
V3=V2+x^5/factorial(5);    
wucha3=(Q-V3)/Q; 
percentage3=sprintf('%2.5f%%',abs(wucha3*100)) 
sanjie=sprintf('%2.5f',V3)
V4=V3-x^7/factorial(7);    
wucha4=(Q-V4)/Q; 
percentage4=sprintf('%2.5f%%',abs(wucha4*100)) 
sijie=sprintf('%2.5f',V4)
V5=V4+x^9/factorial(9);    
wucha5=(Q-V5)/Q; 
percentage5=sprintf('%2.8f%%',abs(wucha5*100)) 
wujie=sprintf('%2.5f',V5)
V6=V5-x^11/factorial(11);    
wucha6=(Q-V6)/Q; 
percentage6=sprintf('%2.9f%%',abs(wucha6*100)) 
liujie=sprintf('%2.5f',V6)
V7=V6+x^13/factorial(13);    
wucha7=(Q-V7)/Q; 
percentage7=sprintf('%2.15f%%',abs(wucha7*100)) 
qijie=sprintf('%2.5f',V7)
V8=V7-x^15/factorial(15);    
wucha8=(Q-V8)/Q; 
percentage8=sprintf('%2.16f%%',abs(wucha8*100)) 
bajiejie=sprintf('%2.5f',V8)
end

【不提倡我的这个办法,很蠢很浪费时间,我是直接输公式后赋值输出,没意思】

3.6

3.7

function []=conversiontable
%描述在不同x、y正负情况下,直角坐标转化为极坐标的情况
x=[2;2;0;-3;-2;-1;0;0;2];
y=[0;1;3;1;0;-2;0;-2;2];
thetatable=[];
r=(sqrt(x.^2+y.^2))';
for i=1:1:9
    z=x(i);
    h=y(i);
if(z<0)
    if(h>0)
        theta=(1/tan(h/z))+pi;
    elseif(h<0)
        theta=(1/tan(h/z))-pi;
    else
        theta=pi;
    end
end
if(z==0)
if(h>0)
    theta=pi/2;
elseif(h<0)
    theta=-pi/2;
else
    theta=0;
end
end
if(z>0)
    theta=1/tan(h/z);
end
thetatable(i)=theta;
end
q=[r;thetatable];
fprintf(' x  y  r       thetable\n');
fprintf(' %9d %9d %8.5f %8.6f\n',q);
end

3.8

function grade=lettergrade(score)
if((100>=score)&&(score>=90))
    disp('A')
elseif((90>score)&&(score>=80))
    disp('B')
elseif((80>score)&&(score>=70))
    disp('C') 
elseif((70>score)&&(score>=60))
    disp('D')
elseif(score<60)
    disp('F')
else
    error('score must be the 0 to 100')
end

3.9

function speed
n=[0.036,0.020,0.015,0.030,0.022];
S=[0.0001,0.0002,0.0012,0.0007,0.0003];
B=[10,8,20,25,15];
H=[2,1,1.5,3,2.6];
U=(sqrt(S)./n).*((B.*H)./(B+2*H)).^2/3;
fprintf('n     S       B H U\n')
fprintf('%4.3f,%5.4f,%d,%d,%5.4f\n',[n;S;B;H;U])  【这个还是很典型,fprintf可以打印出来四列表格】

3.10

function []=displace
x=0:9;
y=((57/6)*x.^3-238.25*x).*(x==0)+((-5/6)*x.^4+(57/6)*x.^3-238.25*x).*(x>0&x<=5)+((-5/6)*(x.^4-(x-5).^5)+(57/6)*x.^3-238.25*x).*(x>5&x<=7)+((-5/6)*(x.^4-(x-5).^5)+75*(x-7).^2+(57/6)*x.^3-238.25*x).*(x>7&x<=8);
plot(x,y)

我把它按照分段函数来做了,我不太能理解这道题他想考察的逻辑是什么

猜你喜欢

转载自blog.csdn.net/m0_62961080/article/details/120888595