مطلب

شروع کار با MATLAB

علایم نقطه گذاری :

%

در ابتدای خط ،آن خط اجرا نمی شود(توضیحات)

؛

نتایج اجرا  را نمایش نمی دهد

،

برای جدا کردن دو دستور از هم استفاده میکنیم

...

وقتی ادامه دستورات یک خط  در خط بعدی بیاید

:

برای بیان یک بازه استفاده میشود

 

توابع آماری در MATLAB

بعضی از توابع کاربردی آمار در جدول زیر ذکر شده است

Mean(X,dim)

میانگین حسابی را محاسبه میکند

Geomean(X,dim)

میانگین هندسی را محاسبه میکند

Harmean(X)

میانگین هارمونیک را محاسبه میکند

Median(X)

میانه سری را محاسبه میکند

Mode(X)

نما را محاسبه میکند

Range(X)

دامنه را محاسبه میکند

Var(X)

واریانس را محاسبه میکند

Std(X)

انحراف معیار را محاسبه میکند

Bar(X,Y)

نمودار میله ای رسم میکند

Plot(X,Y)

رسم نمودار

 نرم افزار matlab به عنوان یک ماشین حساب پیشرفته با توابع آماری زیادی سروکار دارد. می توان برای آن توابع مورد نظر را تعریف کردیا از توابع تعریف شده استفاده کرد در ادامه به تابع رگرسیون اشاره شده که با نحوه ی تعریف وفراخوانی آن آشنا میشویم.

رگرسیون چند متغیره، یکی از متدهای آماری مقدماتی جهت پیش بینی روند متغییری وابسته به دو یا چند متغیر مستقل است. از این روش میتوان برای تصمیم گیری در مورد خرید های پروژه استفاده های زیادی کرد. به عنوان مثال میتوان عادلانه بودن قیمت پیشنهادی برای یکی از ماشین آلات راه سازی دست دوم را مورد بررسی قرار داد. به این صورت که قیمت را در دوره های گذشته برای ماشین های مشابه با متغیرهای متفاوت، ( مثلاً مدت کارکرد و مدل ماشین ) مورد بررسی قرار داده و تابع قیمت را بر اساس فاکتورهای مدت کارکرد و مدل تخمین زد. میزان انحراف قیمت پیشنهادی از قیمت تخمین زده شده توسط تکنیک رگرسیون خطی چند متغیره میتواند شاخص مناسبی در تصمیم گیری جهت خرید باشد.

رگرسیون درmatlab به صورت های زیر تعریف شده است.       

xreglinear/regression

 REGRESSION returns the regression matrix for the model m

 [r,ok]=regression(m)

function [r,ok]=regression(m)

%REGRESSION returns the regression matrix for the model m

%

% [r,ok]=regression(m)

 %  Copyright 2000-2007 The MathWorks, Inc. and Ford Global Technologies, Inc.

%   $Revision: 1.2.2.3 $  $Date: 2007/06/18 22:38:40 $

if ~isfield(m.Store,'Q')

   error('mbc:xreglinear:InvalidState',...

       'Use InitStore first to initialize data in model');

end

 r=m.Store.X;

if ~isempty(r)

   r=r(:,terms2(m));

end

if nargout>1

   % rank check on regression matrix

   ok=~(rank(r)

end

 localsurface/regression

  r=REGRESSION(m) returns the regression matrix for the model m

function [r,ok]=regression(m)

% r=REGRESSION(m) returns the regression matrix for the model m

 %  Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc.

 %   $Revision: 1.2.2.2 $  $Date: 2004/02/09 07:42:28 $

 [r,ok]=regression(m.userdefined);

 لازم به ذکر است که تابع رگرسیون به صورت doubleکار میکند وبصورت زیر فراخوانی میشود.

R =regression(m)                          

اما ما میتوانیم تابع مورد نظرمان را با انتخاب گزینه ی file>>new>>…..و هر یک از گزینه های new، تعریف کنیم.  

-------------------------------------------------------------------------------------------------------

عنوان برخی پروژه های انجام شده با متلب:
•تشخیص چهره face recognition and detection
•تشخیص حرکت از طریق ورودی دوربین یا وبکم
•تشخیص کارکتر و عدد در تصویر ocr
•تشخیص عدد فارسی در تصویر (به همراه آموزش فارسی)
•شبیه سازی مدولاسیون پالسهای کدشده pcm
•شبیه سازی  و بررسی انواع اتصال کوتاه در ژنراتور
•شبیه سازی ورقه کردن فلز
•شبیه سازی بازوی ربات
•ترمیم تصویر image inpainting
•ترمیم ویدئو video inpainting
•کاهش نویز در تصویر noise canceling
•بررسی کلیه توابع توزیع در متلب  distributions functions
•پیاده سازی روش گوشه شمال غربی north-west corner method
•برنامه تبدیل اتوماتیک کد فرترن به متلب
•بهینه سازی تنش در تراس truss optimization
•حل سودوکو با متلب
•بازی دوز به زبان متلب
•حل معمای هشت وزیر (قابل اجرا برای n وزیر)
•حل انواع معادلات دیفرانسل
•حل انواع دستگاه معادلات
•حل انواع تمرین های کنترل
•پیاده سازی شماتیک مدارات الکترونیک
•خواندن، نوشتن و ویرایش فایل های ورد،اکسل و پاورپوینت در متلب
•محاسبه max و min توابع n متغییره با کمک الگوریتم ژنتیک
•مقادیر ویژه و بردار ویژه ماتریس به روش چند جمله ای، fadeev-leverrier و ...
•شبیه سازی اینورتر  inverterچند سطحی با متلب
•تحلیل و آنالیز رادوم ، radome analysis
•یافتن معادله خط و نقطه اپتیم معادلات
•طراحی یکسوساز ستاره ای سه فاز
•طراحی یکسوساز تمام فاز با استفاده از ترانسفورماتور
•یکسوساز تمام موج نیم پل
•یکسوساز سه فاز تریستوری
•حل مساله فروشنده دوره گرد با الگوریتم کلونی مورچه ها، tsp with aco به همراه پاورپوینت
•شبیه سازی پاندول معکوس
•شبیه سازی مدولاسیون سینوسی عرض پالس spwm
•محاسبه تنش، کرنش، تنش برشی اجسام کروی و استوانه ای
•شبیه سازی سه بعدی پل کابلی با استفاده از نیروی متحرک روی پل
•طراحی و ساخت ربات پردازشگر تصویر شامل شناساندن تصویر به متلب، تبدیل عکس رنگی به سیاه و سفید،تبدیل فیلم به عکس، تبدیل عکس به ماتریس، به دست آوردن سیگنال ها و ارسال به پورت
•یافتن پاسخ زمانی یک سیستم با داشتن معادله دیفرانسیل مربوطه با روش شبکه عصبی مانند سیستم پاندول معکوس
•یافتن مساحت دایره، مثلث و عدد پی به روش مونت-کارلو monte carlo method
•حل معادله پواسون به صورت یک بعدی، دو بعدی و سه بعدی
•حل معادله دیفرانسل درجه 2 با سری تیلور
•حل معادله دیفرانسل درجه 2 با روش رانگ کوتا
•حل مسائل انتقال حرارت مانند یافتن نقاط درونی صفحه و انتقال حرارت در اثر عبور هوا از روی استوانه
•محاسبه ضریب اصطحکاک با معادله کلبروک
•جریان در لوله های ساده
•تعیین ثابت تعادل برای محلول های حقیقی
•محاسبات تعادل گاز-مایع، نقطه حباب ، نقطه شبنم
•بدست آوردن ضرایب معادله آنتوان برای آب با استفاده از  رگرسیون
•شبیه سازی مکان هد دیسک خوان
•شبیه سازی طراحی تدریجی مدار باز و مدار بسته سیستم خواندن دیسک درایو
•ظرفیت در سیستم های چند هادی
•محاسبه load flow به سه روش نیوتون رافسون و گوس سایدل و دیکاپلد لود فلو
•ارزیابی عملکرد مشتری بر اساس دریافت اطلاعات پرسشنامه ای مبتنی بر شبکه های عصبی چندلایه
•حل معادله بلازیوس blasiusبه روش رانگ کوتا و shooting method
•کنترل آشوب به روش فازی
•شبیه سازی سیستم تعلیق فعال اتومبیل
•حل تمرین های متلب کنترل مدرن
•شبیه سازی مدولاتور dsb (همدوس)
•شبیه سازی شبکه های وایرلس wireless sensor networks
•شبیه سازی انتقال حرارت و انتقال جرم در آب زدایی گیاه ، حل معادلات pde
•پیاده سازی الگوریتم tdma برای حل دستگاه مهادلات خطی
•حل مساله انتقال حرارت هدایتی
•حل نمونه مسائل استاتیک و مقاومت مصالح بیر جانسون
•توزیع دمایی در یک صفحه در حالت ناپایا را با استفاده از روش خط یا اختلاف محدود finite difference
•یافتن ماکزیمم تابع با استفاده از الگوریتم کلونی کورچه ها aco
•شبیه سازی مدولاسیون های ask, ook, fsk, bpsk, qpsk, 8psk و ...
•سیستم کنترل دستگاه تزریق پلاستیک (پلیمر)
•اینورتر 3 فاز به روش svm (به همراه مقاله از ieee)
•تشخیص لبه تصویر توسط الگوریتم کلونی مورچه ها aco (به همراه مقاله)                


nonlinear regression (like nls) for a surface?

I have 3D data, and it is definitely not a linear surface with which it would fit the best.

Rather sg like z = a + f(x) + g(y) where probably both f and g are polinomes (hopefully quadratic). 

&&&&&&&&&&&&&&&&&&&&&&

That's a linear model if f and g are polynomials.  You can fit it with

lm(z ~ poly(x, 2) + poly(y, 2))

The 2's are the degrees of each polynomial; the intercept a is implied.

****************************

I've made a test dataset of 599 data points, my original equation is

zz = 1 +0.5*xx -3.2*xx*xx -1*yy +4.2*yy*yy

but the R gives this result:
-------------------------------------------------------
> mp <- read.csv(file="sample.csv",sep=";",header=TRUE)
> lm(zz ~ poly(xx,2) + poly(yy,2), data=mp)

Call:
lm(formula = zz ~ poly(xx, 2) + poly(yy, 2), data = mp)

Coefficients:
 (Intercept)  poly(xx, 2)1  poly(xx, 2)2  poly(yy, 2)1  poly(yy, 2)2  
       25.86      -2239.86       -595.01       2875.54        776.84
-----------------------------------------------------------
which is definitely not the original. :(

right. How does it come that if I devide the result vector with 10*interception, I get a much better result?

> zz2 <- 25.86 -2239.86*mp$xx -595.01*mp$xx*mp$xx + 2875.54*mp$yy + 776.84*mp$yy*mp$yy
> mp$zz2 <- zz2
> library(lattice)
> cloud(zz2/258.6 + zz ~ xx * yy, data=mp)


looks quite pretty.

output.jpeg


%3D graph for nonuniform_data
x=rand(100,1)*16-8;
y=rand(100,1)*16-8;
r=sqrt(x.^2+y.^2)+eps;
z=sin(r)./r;
%
xlin=linspace(min(x),max(x),33);
ylin=linspace(min(y),max(y),33);
[X,Y]=meshgrid(xlin,ylin);
Z=griddata(x,y,z,X,Y,’cubic’);
%
mesh(X,Y,Z); % interpolated
axis tight; hold on
plot3(x,y,z,’.',’MarkerSize’,15)

%%surf(X,Y,Z)


x=rand(100,1)*16-8;
y=rand(100,1)*16-8;

xlin=linspace(min(x),max(x),33);

X is a vector of random numbers 100×1. It is then multiplied by 16 and 8 is subtracted from it.

xlin is a vector of lineraly spaced numbers (33 in total) that range from the minimum to the maximum of x.


X1=[7 8 10 12 8 10 12 12 12 12 12];
Y1=[15.8 16.8 17.8 18.8 17.8 17.8 17.8 15.8 16.8 17.8 18.8];
Z1=[12.6 16.2 36 57.9 47.4 36 30.1 16.4 25.7 30.1 57.9];

CLF();
Xlin=linspace(min(X1),max(X1),30);
Ylin=linspace(min(Y1),max(Y1),30);
[X,Y]=meshgrid(Xlin,Ylin);
Z=griddata(X1,Y1,Z1,X,Y,’Cubic’);
mesh(X,Y,Z);
%axis tight, hold off
%plot3(X1,Y1,Z1,’.',’Markersize’,15)
%surf(X,Y,Z);


I think you're asking for a surface fit for your data. The Curve Fitting Toolbox handles this nicely:

%Fit model to data.
ft
= fittype('poly11');
fitresult
= fit([Tavg,Havg],Pavg, ft);
%Plot fit with data.
plot
( fitresult,[xData, yData], zData );
legend
('fit 1','Pavg vs. Tavg, Havg','Location','NorthEast');
xlabel
('Tavg');
ylabel
('Havg');
zlabel
('Pavg');
grid on

If you don't have the Curve Fitting Toolbox, you can use the backslash operator:

%Find the coefficients.
const= ones(size(Tavg));
coeff
=[TavgHavgconst]\Pavg;%Plot the original data points
clf
plot3
(Tavg,Havg,Pavg,'r.','MarkerSize',20);
hold on
%Plot the surface.
[xx, yy]= meshgrid(...
    linspace
(min(Tavg),max(Tavg)),...
    linspace
(min(Havg),max(Havg)));
zz
= coeff(1)* xx + coeff(2)* yy + coeff(3);
surf
(xx,yy,zz)
title
(sprintf('z=(%f)*x+(%f)*y+(%f)',coeff))
grid on
axis tight

% Input : r - a positive number (or a vector with positive entries)

%Output1: A -area of the disc of radius r

%Output2: C -the length of the circumference of the circle of radius r

function [A, C] = circle(r);

A= pi *r.^2;

C=2*pi*r;


% function file for the two variables function z=fun2(x,y)=3x + 2y^2

%Input: two vectors x and y (of the same length)

%Output: a vector z of the same length with x and y.

function z = fun2(x, y);

u=3*x; w=2*y.^2;

z=u+ w; 


Save the file as fun2.m in mywork. In the Command Window, type:
>> zz=fun2(1,2)
>> fun2(1,2)
>> x=ones(1,4)
>> y=2*ones(1,4)
>> zz=fun2(x, y)
>> u

You should get ``??? Undefined function or variable 'u'.'' Why?

The uncommented part of the function can be simplified to:

----------------------------------------------------------------------

function z = fun2(x, y);

z=3*x + 2*y.^2;

----------------------------------------------------------------------

In many situations one function needs to be passed as argument to another function. One way to do that is through a function handle. A function handle is a MATLAB data type that contains all the information necessary to evaluate the function to be passed as an argument. It is created by putting the @ character before the function name. Try:
>>ezplot(@sin)
>>feval(@fun2,1,2)
>> f=@fun2
>>feval(f,1,2)

The MATLAB function fzero.m (>>X = fzero(FUN,x0) tries to find a zero of the function FUN near x0. We can apply this function to find the roots of a simple polynomial function like f(x) =x^2-4. The function f(x) =x^2-4 is not one of the elementary functions already implemented in MATLAB. Thus, you have to create a .m function named, say fun4u.m . The body of the function could be as follows:

----------------------------------------------------------------------

%nice comments here.

function y=fun4u(x)

y=x.^2 -4;

----------------------------------------------------------------------

(type the above three commands in the MATLAB editor and save them as fun4u.m

Next, in the Command Window type
>>fzero(@fun4u,1)
>>fzero(@fun4u,-1)

To avoid writing a .m file implementing the function f(x) =x^2-4, another alternative is to call the function as an ``inline" expression:
>> fun4me='x.^2-4';

OR >>fun4me= inline( 'x.^2-4', 'x')
>> root=fzero(fun4me,8)
> ezplot(fun4me)

MATLAB supports the usual programming structures ``for'', ``if'' , ``while'' and ``switch.'' The syntax is a bit different from C syntax, but the use is much the same. Information about any of them may be obtained from the help command. The following ``for'' statement sums 0.1 n times (assuming that n is given).

sum=0;
for k=1:n
    sum=sum+0.1;
end;

Incorporate the above lines in a function named, say mysum:

----------------------------------------------------------------------

function S=mysum(n)

S=0;

for k=1:n

    S=S+0.1;

end

----------------------------------------------------------------------

What should be the name of the function? Now type:
>>format long
>>S=mysum(10);
>>S=mysum(1000);

Why is the answer NOT S=100?

Other examples of functions which contain the ``for'' structure are Table1.m and fixpt.m (see the class home-page). The function ``bisect2.m'' contains ``if'' and ``while'' statements.

Here is a simple example of how to use the ``while'' structure. Type:
>> n=101;
>> while n>0   %hit enter
disp(sprintf('at this step n=%d and sqrt(n)=%2.5f ', n, sqrt(n))) %hit enter
n=n-4;   %hit enter
end   %hit enter

Comments? Make sure that you understand what each of the above command lines do.

To illustrate the ``if'' structure, type:
>> help if

Copy the statements given by MATLAB help for ``if'' in the Example and create the following function named stiff.m.

----------------------------------------------------------------------

function A=stiff(n)

%%Building a square matrix which has 2 on the main diagonal,

%-1 on the diagonals above and bellow the main diagonal, and

% 0 off the first three diagonals.

for I=1:n

    for J=1:n

          if I==J

                A(I,J) = 2;

          elseif abs(I-J) == 1

                A(I,J) = -1;

          else

                A(I,J) = 0;

          end

    end

end

---------------------------------------------------------------------- Now type
>>A=stiff(8);

Do you get a tridiagonal matrix?

Make sure that you understand what each of the above command lines do.

Feel free to ask (many) questions.        

----------------------------------------------------------------------

Finding roots by using a fix-point theorem

Let us try to use the fpi.m function discussed in class, and fixptpt.m to find the fixed point of the function g=exp(x/4) in the interval (0, 2). First you need to write or download the function fpi.m from the class home page. Second, the function g(x) = exp(x/4) is not one of the elementary functions already implemented in MATLAB. Thus, you have to create a .m function named, say myexp.m . The body of the function could be as follows:

----------------------------------------------------------------------

%nice comments here.

function y=myexp(x)

y=exp(x/4);

----------------------------------------------------------------------

Third, you will need to pass some values for the rest of the arguments of the function fpi.m. Type >>help fpi . For the initial guess, you should plot y=g(x) and y=x, on (0,2) in the same system of coordinates. One fast way to do so is:
>>x=linspace(0,2);
>>y=myexp(x);
>> plot(x,y,x,x)

From the plot one can easily guess that a good initial guess is x0= 1.

To find the fixed point of myexp.m using fpi.m, type
>> xc=fpi(@myexp, 1,10) IF you do not to create a .m file for y=exp(x/4), then you can define the function in the Command Window as an anonymous function:
>> sameexp =@(x) exp(x/4)
>> >> fpi(sameexp,1,10)

OR inline function:
>> samexp = inline('exp(x/4)')
>> >> fpi(sameexp,1,10)

Note the difference in the way the first argument is called for the function myexp.m vs. the anonymous or inline function sameexp.m

Finally, to find the fixed point using fixptpt.m type the following:
>>tol=1e-8
>> maxIter=100
[k, xc, err, x]=fixpt(@myexp,1, tol, maxIter)

How many iterations were performed?










مطالب مشابه :


دانلود رایگان پروژه n وزیر با الگوریتم ژنتیک تحت MATLAB

دانلود رایگان پروژه n وزیر با الگوریتم ژنتیک ژنتیک متلب, پروژه هشت وزیر کد وب کم در matlab




مسئله هشت وزیر

معمای هشت وزیر است که کد پیاده سازی الگوریتم مونت الگوریتم‌های ژنتیک ابتدا




انجام پروژه های متلب در کلیه رشته های علوم مهندسی

استفاده از الگوریتم ژنتیک در موشک های هدایت شونده حل معمای هشت وزیر کد+مثال+یک




مقاله: شبکه های عصبی مصنوعی

لایه می باشد.سپس الگوریتم ژنتیک که جزو الگوریتم به همراه شبه کد آن هشت وزیر




پروژه های انجام شده با متلب

•حل معمای هشت وزیر •یافتن مینمم تابع به الگوریتم ژنتیک •پروژه فازی کنترل موتور dc




آموزش #c

حل مسئله پازل هشت تایی به (8 وزیر) با الگوریتم ژنتیک الگوریتم ژنتیک ga یک گونه از




انجام پروژه ها با متلب(Matlab)

• حل معمای هشت وزیر (قابل اجرا برای n وزیر) • یافتن مینمم تابع به الگوریتم ژنتیک




مطلب

•حل معمای هشت وزیر (قابل اجرا برای n وزیر) max و min توابع n متغییره با کمک الگوریتم ژنتیک




پروژه هاي آماده سي پلاس ++c و C

دوست عزیز پس از پرداخت آنلاین هزینه پروژه ، کد پروژه هشت پروژه n وزیر




برچسب :