用matlab编写程序3个题目,求解答,越详细越好,急啊,谢谢了!

用matlab编写程序3个题目,求解答,越详细越好,急啊,谢谢了!,第1张

1.

x=0:pi/20:2*pi

axis([0 2*pi -1 1])

plot(x,sin(x),'r')

hold on

plot(x,cos(x),'岩腔缺b')

legend('sin(x)','cos(x)')

axis([0 2*pi -1 1])

2.

price=input('请输入商品价格:')

if(price<200)

realprice=price

elseif(price<500)

realprice=price*(1-0.03)

elseif(price<1000)

realprice=price*(1-0.05)

elseif(price<2500)

realprice=price*(1-0.08)

elseif(price<5000)

realprice=price*(1-0.10)

else

realprice=price*(1-0.14)

end

3.

乘法:

a=sym('3*x.^5-x.^(-4)+2*x.^2+x+3')

b=sym('1/3*x.^3x+x.^2-3*x-1')

c=a*b

expand(c)

除法:[q,r]=deconv([3 -1 0 2 1 3],[1/3 1 -3 -1])%q是商圆物,r是余数。数组从后到前表示从〇次项到各高次项粗辩的系数

1.

clear

clc

a=input('a的值为:')b=input('b的值为:')x=input('x的初值为:')

i=0

for n=1:500

i=i+1

y=x

x=a/(x+b)

if abs(x-y)<=1e-5

break

end

end

x %迭代结果

X=[(-b-sqrt(b^2+4*a))/2,(-b+sqrt(b^2+4*a))/陪逗2] %准确值

2.

clear

clc

f(1)=1f(2)=0f(3)=1

for n=4:100

f(n)=f(n-1)-2*f(n-2)+f(n-3)

end

f %f1到f100的值

fmax=max(f) %最芦旁卖大值

fmin=min(f) %最小值

sumf=sum(f) %各数之启绝和

i=length(find(f<0)) %负数的个数

j=length(find(f>0)) %正数的个数

k=length(find(f==0)) %零的个数

3.

clear

clc

k=0X=[0 0 0]

for i=2:50

for j=2:50

x=i*j-1

m=2:x-1

y=x./m

if all(all(y-round(y)))==1&all(all(X(:,3)-x))==1&j==i+1

k=k+1

X(k,:)=[i,j,x]

end

continue

end

end

X %2至50亲密数对

sum(X(:,3)) %上述亲密数对对应的所有亲密素数之和

出错原因搭颤:

浮点数计算误差导致。经过几步循环之后,x并不精确等于0.6,而x/step+1也不是整数7,这样就会导致数组下标不是手枝隐整数,所以会出错:

>> x

x =

    0.6000

>> num2str(x,'%.16g')

ans =

0.6000000000000001

>> num2str(0.6,'%.16g')

ans =

0.6

>> num2str(x/step+1,'%.16g')

ans =

7.000000000000001

MATLAB中的函数计算直接用数组运算就可以了,例如

x=0:0.1:2

y=2*x

如果毕厅涉及到向量的乘、除、乘方运算,相应的运算符应使用点运算。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12518173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存