求解一道m(xù)atlab作業(yè)題?
- 資格考試
- 2023-07-27 17:44:17
MATLAB作業(yè)?
題主的MATLAB問題,可以這樣解決:
1、確定頻率比a/b分別是有理數(shù)和無理數(shù),如k=a/b=1.5,pi,2*pi
2、將已有的頻率比,賦值給k變量,即 k=[3/2,1/3,1/2];
3、使用numden函數(shù)分解分子a和分母b,即
[a,b] = numden(sym(k));
4、利用for循環(huán)語句,計算當(dāng)k為某值時的x、y值,即
t=0:0.5:10;
x=sin(a*t);
y=sin(b*t);
5、用plot函數(shù)繪制質(zhì)點的運動軌跡圖,即
plot(x,y),hold on
legend(str,'Location','southeast');
xlabel('x'),ylabel('y')
title('質(zhì)點的運動軌跡圖')
6、完成代碼后,運行可以得到如下結(jié)果
一道MATLAB題,求助啊
題主并沒有把問題描述清楚。
其實這是一個單一設(shè)施選址問題,其中的ai對應(yīng)的是平面上點的坐標(biāo),wi為各點的權(quán)重。所謂【f是一個特定函數(shù)】說的很含糊,其實f是所選點與各已知點距離的加權(quán)和,而迭代的目標(biāo)則是讓f達(dá)到最小值。
這是一個無約束優(yōu)化問題,可用fminunc直接求解:
%常數(shù)定義
a1=[2;0];a2=[4;10];a3=[8;3];a4=[3;5];a5=[5;7];
w1=6;w2=2;w3=7;w4=5;w5=4;
e=1e-6;
%為便于統(tǒng)一處理,使用數(shù)組
A=[a1a2a3a4a5];
W=[w1w2w3w4w5];
%初值
x0=rand(2,1)*10;
%定義求范數(shù)和目標(biāo)函數(shù)的匿名函數(shù)
n=@(x)arrayfun(@(i)norm(A(:,i)-x),1:length(W));
f=@(x)sum(W.*n(x));
x=fminunc(f,x0,optimset('LargeScale','off','display','off'))
如果用題主貼出的來式子編程序,代碼如下:
%常數(shù)定義
a1=[2;0];a2=[4;10];a3=[8;3];a4=[3;5];a5=[5;7];
w1=6;w2=2;w3=7;w4=5;w5=4;
e=1e-6;
%為便于統(tǒng)一處理,使用數(shù)組
A=[a1a2a3a4a5];
W=[w1w2w3w4w5];
%初值
x0=rand(2,1)*10;
%定義求范數(shù)和目標(biāo)函數(shù)的匿名函數(shù)
n=@(x)arrayfun(@(i)norm(A(:,i)-x),1:length(W));
f=@(x)sum(W.*n(x));
%迭代
whiletrue
N=n(x0);
x=sum([W;W].*A./[N;N],2)/sum(W./N,2);
%若滿足精度要求,退出循環(huán)
ifabs(f(x)-f(x0))<=f(x0)*e
break
end
x0=x;
end
x
其實,迭代的終止條件除題主所給的目標(biāo)函數(shù)相對誤差(TolFun)之外,常見的還有變量本身的允許誤差(TolX)以及迭代次數(shù)(MaxIter)等。
下面給出一個增加了繪圖示意的版本。等值線為目標(biāo)函數(shù),各已知點根據(jù)權(quán)重以不同大小表示,動畫示意了從不同初值經(jīng)迭代到達(dá)最優(yōu)點的過程。
%常數(shù)定義
a1=[2;0];a2=[4;10];a3=[8;3];a4=[3;5];a5=[5;7];
w1=6;w2=2;w3=7;w4=5;w5=4;
e=1e-6;
%為便于統(tǒng)一處理,使用數(shù)組
A=[a1a2a3a4a5];
W=[w1w2w3w4w5];
%初值(隨機生成)
x0=rand(2,1)*10;
%定義求范數(shù)和目標(biāo)函數(shù)的匿名函數(shù)
n=@(x)arrayfun(@(i)norm(A(:,i)-x),1:length(W));
f=@(x)sum(W.*n(x));
%繪圖
clf
ezcontour(@(x,y)arrayfun(@(x,y)f([x;y]),x,y),[-312-111])
holdon
fori=1:length(W)
plot(A(1,i),A(2,i),'o','MarkerSize',W(i)*2,'MarkerFace','c');
text(A(1,i)+0.4,A(2,i),sprintf('(%g,%g)',A(:,i)));
end
h2=plot(x0(1),x0(2),':.','color',[111]*0.8);
h1=plot(x0(1),x0(2),'r*');
h3=title('');
axisequal
colorbar
X=x0;
%迭代
whiletrue
N=n(x0);
x=sum([W;W].*A./[N;N],2)/sum(W./N,2);
%更新繪圖
X=[Xx];
set(h2,'XData',X(1,:),'YData',X(2,:))
set(h1,'XData',x(1),'YData',x(2))
set(h3,'str',sprintf('Currentpoint:(%.4f,%.4f),f(x)=%.6f',x,f(x)));
drawnow
pause(0.5)
%若滿足精度要求,退出循環(huán),否則以新的值繼續(xù)迭代
ifabs(f(x)-f(x0))<=f(x0)*e
set(h1,'Color','g','Marker','p','MarkerFace','g')
break
end
x0=x;
end
參考:
Weiszfeld 算法
求解一道m(xù)atlab的題!!!
十分簡單。把以下程序存為:average.m function y = average(X) y = sum(X)/length(X); 運行時: >> x=1:5 x = 1 2 3 4 5 >> average(x) ans = 3 可以type mean,看平均值的求法。 >>type mean function y = mean(x,dim) %MEAN Average or mean value. % For vectors, MEAN(X) is the mean value of the elements in X. For % matrices, MEAN(X) is a ro用matlab解數(shù)學(xué)題?
由于題主給出的求和問題是包含x變量的,所以該問題只能用數(shù)值解的形式來表示可以。求解途徑:
1、給出一系列x值,如 x=0~10,并建立x向量。即
x=0:0.5:10
2、使用for循環(huán)語句,用symsum函數(shù)求出當(dāng)x為某值時對應(yīng)的f(x)值:
fx=symsum(1/((2*n+1)*(2*x+1))^(2*n+1),n,0,+inf)
3、使用plot函數(shù)繪出其數(shù)值解的圖形,即
plot(x,fx)
運行結(jié)果及圖形。
求解matlab一道經(jīng)典簡單題,高分求解!
1. 已知五個點,如果曲面方程有5個系數(shù),則可直接求出這5個系數(shù)。 如: f(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y Coefficients: p00 = -2850 p10 = -178.3 p01 = 1570 p20 = 162 p11 = -305.7 又如: f(x,y) = p00 + p10*x + p01*y + p11*x*y + p02*y^2 Coefficients: p00 = 7.326 p10 = 1675 p01 = -2192 p11 = -479.5 p02 = 646.5 2. 已知五個點,如果曲面方上一篇
教師資格證答辯時能看教案嗎
下一篇
返回列表