text:
### Archive

Posts Tagged ‘xendesktop’

## Opening Sharepoint documents in a Windows 7 XenDesktop session using XenApp published Office products with content redirection

Wow, long title there! Just like it says, I’m going to cover opening Sharepoint documents in a Windows 7 XenDesktop VDI session using XenApp published Office products with content redirection enabled. Here’s an example scenario:

• Your company uses Sharepoint and the URL is http:\\sharepoint.domain.com. It is part of the Local Intranet zone in IE.
• Your users are using Windows 7 VDI/XenDesktop VMs with Citrix Receiver Enterprise pulling published apps into the Start menu.
• You have Office 2010 products (Word 2010, Excel 2010, Visio 2010, etc) published via XenApp with content redirection enabled so .docx, .xlsx, .vsd files launched in the VDI session will open using the published Office app.
• Your users want to click on a Word, Excel, Visio, etc. document in a Sharepoint document library and click the Edit button to edit the document instead of just Read Only. They expect the published Office app to launch and allow them to edit the document.

THE PROBLEMS
In this scenario, when the user clicks on let’s say a Visio document in Sharepoint, the published app will launch but the document will not be sucked in. You’ll get a “File not found” error and if you look closely, the URL begins with “\\” as if it’s a UNC path instead of an HTTP path:

If you click OK, Visio will open but no diagram will open.

If you right click, Save As the Visio diagram to your C: drive and attempt to open it locally, it will launch the published Visio instance but will give you the following “File not found” error:

Again, look closely. It says “\\Client\” instead of your VM’s name.

THE FIXES
Well, really it’s 1 fix and 1 workaround for now. Let’s start with the fix first. We’re going to get local files and files residing on network shares launching right using the published app. I’m going to use Visio and a .vsd file again as the example:

1. On the Windows 7 VM, you must enabled Native Drive Mapping to be able to launch the .vsd file via published Visio. You can follow the CTX article here to make the registry change:

http://support.citrix.com/article/CTX130378

or you can enforce it via group policy. One thing though, on Windows 7 x64 the path is:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\Engine\Configuration\

NativeDriveMapping
Reg Type: REG_SZ

Once the value is set to TRUE, try launching the .vsd file you saved to your hard drive or on a network share. It will launch immediately. Then go to File – Save As in Visio and checkout the path bar. It will say “\\Client\C$\Users\xxxx\”. So now your system recognizes the word “Client”. This is because you’re going through 2 virtualization layers. Citrix has an excellent article detailing how Client drives are passed through multiple sessions here: http://support.citrix.com/article/CTX127872 You can also read more about the NativeDriveMapping key here: http://support.citrix.com/article/CTX124389 Additionally here is a really good CTX article from Citrix that covers Client Drive Mapping troubleshooting that might be helpful to you: http://support.citrix.com/article/CTX238200 And some info describing differences in Client drive mapping between the different versions of XenApp and Presentation Server here: http://support.citrix.com/article/CTX127614 2. Now back to Visio diagrams in Sharepoint. First you need to verify content redirection is behaving correctly. In my case, I needed to make sure to change the published app location to include the “%**” switch. By default when you enable content direction, it will be: "D:\Program Files (x86)\Microsoft Office\Office14\VISIO.EXE" "%*" with just one asterisk. You need to add two so it looks like this: "D:\Program Files (x86)\Microsoft Office\Office14\VISIO.EXE" "%**"  The reason for this is documented in this CTX article: http://support.citrix.com/article/CTX116887 This was written for Presentation Server 4.5 but it still applies to XenApp 6.5 just fine. Once you get content redirection squared away on your XenApp server, things will still not work correctly unfortunately when opening docs in Sharepoint in your XenDesktop session. You can try right clicking and editing but you will still get the File not found error. This error has nothing to do with Client Drive Mapping. Being a Sharepoint Architect in a previous role long ago, my gut feeling was this is a WebDAV issue. Remember, Sharepoint uses WebDAV with document libraries though to the casual observer it might appear to be a UNC file share path. My gut was telling me Receiver was not handling WebDav paths correctly and was treating them like regular SMB file share paths. No proof this is the culprit just yet, only a hunch. Let’s run an experiment. In your Sharepoint document library, click Actions > Open with Windows Explorer: You’ll notice the path bar says “http://sharepoint.domain.com” when you open it here: Go ahead and launch the Visio diagram in this document library. When you try and launch it, it will launch published Visio and give you the same File not Found error as before. In some scenarios even an Access Denied error though it never actually was able to find the file. Again, it is looking for “\\sharepoint.domain.com” instead of using WebDAV (or the DavWWWRoot keyword) which should be parsed like the HTTP protocol “http:\\sharepoint.domain.com”. Sharepoint Content Redirection is never going to work because Citrix Receiver doesn’t know how to get there. One work around is to tell your users to save locally, edit, then upload. But this is annoying and most users will complain. I started thinking Mini Redirector (which is Microsoft’s WebDav client and part of the Windows 7 OS) was trying to hand-off the DavWWWRoot keyword in the URL to Receiver and Receiver didn’t know what to do with it. Looking at the URL though it didn’t even seem to be passing it through. It was as if it was passing a straight UNC path. Or maybe is was not talking to owssupp.dll which is required to interact with and edit docs in Sharepoint. Maybe somehow it wasn’t handing off through Receiver properly. Now I was really starting to go down the rabbit hole and before I dug further, I figured I’d give Citrix Support a call and see if they had any input. I was able to talk to a XenApp support technician and a XenApp Developer who were both very knowledgeable. I explained my WebDav theory and we ran a little experiment. We ran Process Monitor from my Windows 7 workstation and attempted to edit a simple Word document in Sharepoint. The published version of Word launched as expected and failed to find the file. Here is the URL that was passed to the PNAgent when we used the Process Tree display: You can see that it passed: \\Client\\\sharepoint.domain.com\link\to\doc\repository\test jason.docx" Looks a bit odd, doesn’t it? No wonder it can’t find the file. Then we went to the XenApp server with Word 2010 installed locally, opened Internet Explorer, and navigated to the Sharepoint document library. When I clicked Edit on the Word document this time, this is what was passed to the locally installed Word: And of course the Word document successfully launched. You can see it passed a nicely formatted HTTP URL: http://sharepoint.domain.com/link/to/doc/repository/test%20jason.docx" The XenApp Developer verified this was actually a bug and needed to be fixed. It may or may not be WebDav related, but he confirmed there is definitely a disconnect at the Content Redirection level via Sharepoint as I had suspected. It has been added to their bug queue to get taken care of. In the mean time, his suggestion is to publish Sharepoint itself on the same server Office 2010 products are installed on (publish IE passing the Sharepoint URL during launch). This is a good workaround but may annoy a few users. I always hate publishing IE because of the stuff you have to do to lock down/harden the browser. People can get confused and start browsing to Youtube or other process intensive websites using this published instance of IE if you don’t completely lock down the allowed URLs. This can cause a severe impact on XenApp performance for all users on the box. If I limit tabs, then people start complaining they can’t open additional tabs and the helpdesk gets flooded with phone calls. So just keep that in mind if you use this workaround. Another work around I found online is by Anthony Obi: http://community.obilogic.co.uk/blogs/teamblog/archive/2011/10/25/sharepoint-2010-edit-document-via-citrix-xenapp.aspx He has an issue where owssupp.dll was not being detected on the client system (because it wasn’t there) and added an extra menu item in his Sharepoint deployment to edit documents as a work around. He modified the new Edit action to launch some Javascript that talks to PNAgent.exe that then talks to the published Office instance and passes the correct URL. This might work as well for you but of course it requires a modification of your Sharepoint environment and end user training. I will post here as I get updates from Citrix Support on this issue. It’s a fairly unique scenario but definitely not uncommon in the real world as application delivery and desktop virtualization continue to be separated through multiple layers. ## XenCenter causing a SYN flood on port 3389 in a PVS environment November 9th, 2012 No comments Had an interesting morning. Our network team discovered my workstation was making around 6000 requests an hour on RDP port 3389 through our internal firewall to an unroutable network reserved in our server subnet. Basically a SYN flood (DOS/Denial of Service attack) was being executed internally from my workstation. I know my machine is clean and the only thing I had open was XenCenter. It had been running for about a week now, that was the last time I rebooted my workstation. So time to put on the detective hat and figure this one out. While using TCPView to do a live netstat, I discovered that XenCenter by default will always establish a connection via RDP when you click the Console tab. It tests to see if RDP is available on the VM and then ungreys that “Switch to Remote Desktop” option. Even if you are using a console session, XenCenter wants to see if RDP is an available option to you. You know that little flash of the console you usually see after hitting the Console tab? That’s the XenCenter console checking for RDP and “connecting” to the VM transparently to verify RDP is available. Not so transparent and actually annoying but I never thought too much about it. SYN_SENT on 3389: Established connection: Terminating connection: The problem is in a PVS environment, you usually have your network split between a streaming traffic NIC and a regular traffic NIC. The streaming traffic NIC is supposed to be the first NIC/device. So Device 0. It will look something like this on all your VMs: Where the first streaming NIC is only routable within the Blade enclosure or server subnet and the secondary NIC routable and used for regular network traffic. Well the problem is that when you click the Console tab on one of these VMs, XenCenter will send a SYN request to what IP is at Device 0. So in our case, an unroutable IP in the server subnet. Not a problem right? Well it never stops. It continuously sends the SYN requests attempting to connect. Even if you click off the Console tab or go to another VM, it continues to try RDP on that IP. Our firewall separating workstation and server subnets was getting hammered. You can verify because your Console will have the “Switch to Remote Desktop” option greyed out during this whole process. and TCPView will show all those little red SYN_Sent attempts. After a few days of leaving XenCenter up and clicking from console to console, the amount of traffic hitting your firewall will be tremendous. It will look like a SYN flood attack. If you have an IPS or IDPS (Intrusion Prevention or Intrusion Detection & Prevention System), it might even shut down your port. I called Citrix and submitted a ticket with their development team. I got a call back later and there is a work around. In XenCenter, go to Tools > Options > and click the Console option. Then uncheck “Enable Remote Desktop console scanning”: When you uncheck this, it will also uncheck “Automatically switch to the Remote Desktop console when it becomes available”. This is fine: After this you will notice the SYN flood will immediately stop and all your VMs will now have the “Switch to Remote Desktop” option ungreyed from the get go. If you click it, then it will attempt the RDP connection and you will see the SYN_Sent again: In my opinion, Citrix should fix this but stopping the SYN requests after you click away from the Console tab. This is not an issue that will impact many people but if you are running a PVS environment and you have it setup using Citrix best practices with 2 NICs and the streaming NIC is not accessible from your workstation subnet, you will eventually run into this issue. The longer you keep XenCenter open, the worse it will get. If I get any updates from Citrix on a fix, I will post here. For now the work around will work fine. You just won’t have the Remote Desktop automatic console scanning available for your regular environments anymore. Not really a big loss for me but it might be for you depending on your environment. ## SEP 12 not working with PVS 6.1 and Windows 7 XenDesktop VMs July 26th, 2012 4 comments We came across an issue getting Symantec Endpoint Protection 12 working with Provisioning Services 6.1. When you install SEP 12 on the Windows 7 VM, it causes the VM to freeze during the install. Sometimes it actually finished installing but then immediately after the VM freezes. In both cases you have to force a reboot. Once the VM is back up, you are not able to login using domain credentials. It will give you a “The trust relationship between this workstation and primary domain failed” error message. So you have to use local admin credentials. Once you are in, some of your apps might be broken. Symantec is sometimes in a half installed state. Running LiveUpdate fails. Your OS is pretty much hosed at this point and you have to start all over. Through extensive testing, we discovered that SEP 12 was somehow impacting the network stack causing the vDisk to disconnect. SEP and the PVS Target software were vying for control. We escalated this through Symantec and were finally told there is a compatibility issue between SEP 12 and PVS 6.1 but it is not public knowledge yet. There is an internal ETrack on the issue. SEP 12 has been used with PVS 5.x and provisioned desktops successfully. When Citrix released PVS 6.x, a driver was changed from the previous version and issues have been seen on provisioned desktops if any of the following 3 SEP modules are installed: Advanced Download Protection, SONAR Protection, and IPS. Symantec is working on a code change, but meanwhile you can leave out these modules. After performing more tests without these 3 modules installed, SEP 12 is installing and running normally without impacting the PVS infrastructure. This is version 12.1.1101 shown below we have tested on. Hopefully a newer version of SEP will be fully compatible with PVS. After the install is done, run a full scan, run the VIE tool (Virtual Image Exception tool), reset your hardware IDs, and you’re ready to spin up VMs in standard/read only vDisk mode. UPDATE: September 28, 2012 Symantec released an update to fix this as part of their definitions from September 4th onward. It comes to the SEPM automatically as part of the daily update process so everyone should have it at this point. No manual patch or fix is needed. It changes the timing of Symantec. Symantec and the PVS Target will no longer vie for control of the network stack as I understand it. Symantec will start delayed after the PVS Target has fully started. I don’t have any further technical details but I am hoping Symantec will have a KB up soon covering this. We have been testing and everything seems to be working well. ## How to install and configure PVS 6.1 with XenDesktop 5.6 June 26th, 2012 24 comments Once a company has a XenDesktop or XenApp environment that is pretty mature, they often turn to Citrix Provisioning Services (PVS) to help scale the environment. There are many reasons to use or not use PVS for your VDI or XenApp environment and that’s a whole other discussion. The purpose of this blog post is to get you familiar with how to implement it. There are not a whole lot of step by step guides out there and PVS can be a real beast to wrap your head around if you are not familiar with it. Now for the disclaimer. This guide will describe how I do things for my PVS environments. This will probably be different for your environment so make sure you thoroughly understand the reasoning behind each step and how it applies to your environment. What works for me may not work for you. So let’s get started! INSTALLATION You must be logged into the PVS server using a service with DBO rights or the install will fail. Have your DBA set the service account to SA temporarily for the install. After install, remove SA rights and just give these rights only: • dbcreator; required for creating the database • securityadmin; required for creating the SQL logins for the stream and soap services • db_datareader • db_datawriter • execute permissions on stored procedures I find this to be the most pain free method of getting PVS installed with no DB errors. Now on to the actual steps: 1. Enable Application Server role (.NET features will be automatically installed) 2. Start Wizard, hit Console installation, run through all of it. Just hit next accept all the license agreements and let it install everything until you get to the path to install part. 3. Choose Path for install (change to D:) 4. Choose Complete install 5. Once done, click Server Installation on wizard home page > Install Server 6. Install SQLncx64 when prompted 7. Change path to D: 8. Choose Complete install And you’re done! Not very hard at all. CONFIGURATION Now we get to the slightly harder part, configuration. This is going to depend a lot on how you have your hardware setup. I want each of my Windows 7 provisioned desktops to have 2 NICs. One NIC is for regular network traffic and the other for streaming traffic. You don’t have to have 2 NICs and separate your traffic like this but I do for production environments. It is really only beneficial for large scale implementations so if you are doing something smaller scale or for a test environment, 1 NIC will suffice. Just keep in mind everything below in my guide is written as if you have 2 NICs: 9. For DHCP, choose service that runs on this computer and choose Microsoft DHCP. So the PVS server will have the DHCP server role running and it will be handing out streaming network IPs to the VMs as they boot. They will get regular network IPs from your regular DHCP servers just like any physical box on the network. More on this later. 10. For PXE boot, choose service that runs on this computer and choose Microsoft DHCP as well. 11. Create farm or join farm depending on what you’re doing. 12. Either choice will will ask for database info on next page 13. Type in your DB info and hit Next 14. Choose a database ***DO NOT USE A PRE-CREATED DB, just type the new DB name in the Database name box and it will create it automatically once you hit Next***. I’ve run into numerous issues in the past attempting to pre-create a database. I’m telling you now, get SA rights temporarily as I mentioned in the first part of this guide if you can. It will make your life easier. 15. My E: drive on my PVS Server is a high performance flash based IO accelerator card in this case. That is where I will put my Store. You will want some very read friendly storage for your Store as this is where you will be putting all your golden images. 16. Type in your license server info. 17. Keep user account as Network service account 18. Hit Yes wen prompted for configuring the database with the account 19. Leave password updates to the default of 7 20. Check the teamed NIC for the “Provisioning” network, not the regular network traffic network. In this case my streaming traffic/provisioning network is only routable within my blade enclosure and my interface has an IP of 192.0.0.1 21. Check the Use the PVS TFTP service option 22. Leave the default for stream servers boot list. It should be the IP of the server itself on the “provisioning” network. 23. Advanced button has some settings, leave default 24. Hit finish on confirmation page. It should look something like this. 25. Go to your NIC for PVS traffic (or teamed NIC) on your PVS server and disable IPv6. Leaving it enabled can lead to issues. 26. If using your server for DHCP as well as I mentioned above, install the DHCP Server role. 27. Select just the PVS network 28. 0.0.0.0 for the DNS servers 29. WINS not required 30. Create your scope 31. Disable DHCPv6 32. I skipped authorization when taking the screenshots but you should do it now if possible. 33. Confirm and install BUILDING YOUR BASE IMAGE Now on to building your Windows 7 base image. This is the base image that will be completely clean, very little customization. This will be the primer for your golden images later. Building an image is not to be taken lightly. These two articles from Citrix are a good read so you have a solid understand of what you are going to do. CTX121028 “Best Practices for Creating a XenDesktop Image” is an older article but still a good read if you are building your image for the first time: http://support.citrix.com/article/CTX121028 CTX131481 “Recommended Install Order for Preparing Target Device Captured by Provisioning Server to Deploy vDisk” is a bit newer and is also a good resource you should read through before proceeding: http://support.citrix.com/article/CTX131481 34. So first you need to build a VM out. Just go to XenCenter and run the “New VM” wizard. Choose the Windows 7 (64-bit) template. 35. Give it a name and description 36. Choose the MSDN Windows 7 ISO 37. Choose a host server 38. 2 vCPUs, 4 GB RAM (4096 MB) 39. Choose local storage for the disk. You can add more disks or even increase the size of a disk under Properties. 40. Delete ALL the NICs, you will recreate in the right order in the next step. 41. Click Add and add the PVS bond first, THEN the network bond. So in the example Bond 4+5 first, then Bond 2+3. Note: This is a critical step. Changing the order or adding/removing NICs later is not recommended as it breaks stuff between the XenServer Tools and PVS Target agent in my experience. Get your network setup right the first time and in the right order to avoid issues. Always put the PVS network first, network traffic second. 42. Hit Finish on confirmation page to build the VM 43. Go to the console of the new VM and run through the Windows 7 setup wizard. When it comes time to name the PC, make sure it is not a name that already exists on your network. In this example I will use “Win7MSDNBaseISO” for demo purposes but you should come up with some kind of naming scheme for your environment since you will eventually have several golden images and you don’t want to confuse them. Something like “GOLD-ACCT01″ for your Accounting departments first golden image, etc. 44. Login and install XenServer Tools. Without it your NICs will act wonky. Like sending malformed packets and such which cause an HTTP 400 server error to any website you navigate to. You will need to reboot after the install. Once it’s back up, it will detect the NICs and likely prompt you to reboot again after installing the new hardware so go ahead and do it. 45. Log back in and then run your Windows Updates and/or Microsoft Updates. Don’t install any company related apps yet if at all possible. Make it as generic and clean as possible. Remember, you are building a base image to suck into a vDisk, not a golden image just yet. Whether you have just one golden image for your whole company (not likely in most environments) or several per department, try to keep the base image as lean as possible. You’ll also notice your NICs are now labeled are looking a lot healthier than before as well. Adapter 0 may say Unidentified network since your provisioning network should ideally be private. **NOTE: You can add the machine to the domain but, DO NOT install the VDA agent yet. 46. If you click on the network tab, you will notice both NICs have IPs whereas before the XenSever tools install it was Unknown. 47. Snapshot your VM. It’s not necessary but I like to as a precaution. From here if I mess up on something or forgot something, it’s easy to revert to my snapshot and fix whatever needs fixing. Beyond this point it becomes tricky. 48. Now install the Provisioning Server Target Device Software from the PVS ISO. Just click the Autorun.exe. 49. Click Target Device Installation 50. Hit Target Device Installation on the 2nd page too and it will launch the wizard. Run through the EULA and hit Next through all the windows until the install is done. 51. Uncheck the Launch Imaging Wizard link and hit Finish. 52. Hit Yes to reboot and mount your PVS boot disk as the VM comes back up or you can just shut down for now if you don’t have one yet. 53. Open up Provisioning Services Boot Device Manager (BDM) on your PVS server and create an ISO if you don’t have one already. It needs to have the IP address of the server on the provisioning network NIC. 54. Options can all be default 55. Use DHCP, swith the Boot Device to Citrix ISO Image Recorder, then hit Burn. Drop the ISO in an ISO Library your XenCenter can see. 56. Here’s where things may differ for you if you have used older versions of PVS before Imaging Wizard is where its at today. The old way of doing things was pre-creating a device on your PVS server with the same MAC address as the VM’s NIC, pre-creating a vDisk and calculating the necessary size, formatting it, assigning the vDisk to the device, then running BNImage to capture the system and push it into the vDisk. None of this manual work is necessary anymore. The Imaging Wizard works really well and will do everything for you. I actually first took screenshots of everything the manual way just for reference so you know where to look if something breaks. But then I figured that showing that whole process might confuse you so I will show you the Imaging Wizard way only. If you need me to, I can post an addendum to this article showing the manual way. Just leave a comment if you’d like to see it. So now log back in once the VM is up and start Imaging Wizard. Enter your PVS server farm details. 57. Hit next and let it Create a new vDisk. Just hit Next again. 58. Give the vDisk a name. The vDisk size in the store will automatically be calculated. I left the VHD type to Fixed but you can choose Dynamic. Citrix has started recommending Dynamic as a best practice these days. I like to do 16 MB block size if doing Dynamic personally. It just means it will grow in 16 MB chunks. Again, make sure you select a good naming scheme for your vDisks as it becomes very important to keep them organized. 59. Choose KMS for key management (assuming you are using KMS) 60. Leave the image volume sizes all default 61. Type in a target device name, choose your streaming traffic NIC, and choose a collection: 62. On the confirmation page, click Optimize for Provisioning Services. 63. This will make a ton of registry changes that will optimize your image for PVS using ngen.exe in a cmd prompt window. Just hit OK and wait several minutes as it completes this process. 64. Once it’s done, hit Finish to begin prepping the vDisk on your PVS server’s store. It will immediately allocate the space for the vDisk since you are using Fixed so make sure there is enough room. 65. Once it’s done, it will ask to Reboot. Hit No. 66. Now right click on the VM in XenCenter and change the DVD Drive boot order to first and disable everything else. 67. Change the ISO in the DVD drive to the ISO you burned above. 68. Now go back to your PVS console and verify the device now has the vDisk attached under it’s properties. You can also choose to list the local hard disk in the boot menu. 69. Now you can reboot your VM. It will boot using your ISO, connect to the PVS server, obtain an IP on the PVS network, connect the virual disk you created. The vDisk is still in private mode. You can verify this in the PVS console easily. Just refresh and you will see a green check mark next to the device. It will have an IP and will tell you which PVS server it is connected to. 70. Log back into your VM now. It will automatically kick off the vDisk capture by loading XenConvert to capture the image. It will begin pushing your image to the vDisk you created on your PVS server. 71. Sometimes there may be errors (non-critical) but make sure to read the log and verify there is nothing critical in there. Then hit Finish. 72. You will be logged back into your Windows 7 VM at this point. Go ahead and shut it down. 73. Go to your PVS server and change the Boot From properties on your device to vDisk. 74. Now go to the storage options of your VM and detach the local storage on your XenServer. You don’t need it anymore. Then boot up your VM again. This time you will be booting directly into the vDisk image you had pushed across before on the server. 75. In the system tray menu, you can verify your vDisk is connected. Also in Explorer, you will only see the c: drive which is your vDisk. 76. I HIGHLY recommend you make a backup copy of the .vhd in your Store right now. It is a clean image with no apps and if something happens, this is the image you can revert back to. Think of it as your “Stage 1″ vDisk. Make the copy and store it away somewhere safe. Once you do that, since it is still in private mode and if you haven’t done so already earlier, go ahead and add it to the domain. Then reboot when prompted. Don’t forget to add your necessary security groups as local admins before rebooting. 77. Log back in and install and other apps your company may need for the base image. You can begin installing core applications like Adobe Reader, Flash, SEP, SnagIt, NAC agent, etc. Apps that need to reside on every PC on the network. Nothing specific. You should also do your OS customizations at this time if you have any. Then lastly, install the XenDesktop 5.6 VDA agent. Make sure you use AutoSelect.exe to install it and not the .msi on the CD or you will have issues. Your path will be something like this if you left the XenDesktop 5.6 install files somewhere on your DDC: \\yourDDCservername\Downloads\XD5.6_VDI_Single2\XenDesktop56\AutoSelect.exe 78. Choose Advanced Install 79. Accept the EULA 80. Leave the default Virtual Desktop Agent 81. I usually uncheck Receiver. I like to deploy it later using the Enterprise version I want our users to be using. 82. Leave PVD disabled for now. You can enable personal vDisk later if you need to. 83. Type in the names of the DDCs. You can seperate multiple DDCs with spaces. They must be FQDNs. Hit the Check button to verify they can be resolved. Then hit Next when done. 84. Leave the VDA config settings the default and hit next 85. Hit next at the summary page 86. Hit Close and it will restart the VM. 87. When the VM is back to the login prompt, go ahead and shut it down. Then go to the PVS Console and swtich the vDisk from private to standard mode (multi-device) mode which makes it read-only. If you see a lock next to the vDisk, you may need to clear it first. That’s it, you are now complete with your base image setup. CREATING A XENSERVER VM TEMPLATE 88. Now you need to create a VM template that PVS will use to spin up new VMs with. You can simply create a copy of the VM you had been working on and convert that copy into a template or you can create one manually. I suggest copying and converting to a template, less change of screwing something up. If doing it manually though, in XenCenter run the “New VM” wizard. Choose the Windows 7 (64-bit) template. 89. Give it a name and description 90. Boot from network 91. Choose a host server 92. 2 vCPUs, 4 GB RAM (4096 MB) 93. Choose “Create a diskless VM that boots from the network” and hit Next. 94. Delete ALL the NICs, you will recreate in the right order in the next step. Click Add and add the PVS bond first, THEN the network bond. Same as before when you created the original VM. It is critical you get this right and it matches the VM. 95. Uncheck “Start the new VM automatically” and hit Finish. 96. Make sure to change the boot options to DVD drive only and move it to the top since we are using BDM (PVS boot disk). Also make sure to mount the PVS boot disk ISO at this time. 97. Right click the VM and click “Convert to Template…” 98. Hit Convert at the confirmation prompt 99. Now you can verify it is a template (blue box next to it) in XenCenter PROVISIONING VMS USING THE PVS SERVER AND XENDESKTOP DDC 100. Now it’s time to start provisioning new VMs. In the PVS Console, right click on your site name and click “XenDesktop Setup Wizard…” 101. Hit Next at the Welcome screen 102. Type in the FQDN of only one of your DDCs and hit Next 103. Select the XenServer host you want to run your machines on and then hit Set Template to set the VM template. 104. Type in credentials for your XenServer and hit Log On, you will see all the templates on the host. Choose the VM template you had created in the steps above and hit OK and then Next. 105. Choose your Device Collection and vDisk 106. Now you can create a new Catalog or use an existing catalog. In this example, I am going to use an existing catalog. Select your Admins and hit Next. 107. Choose the number of VMs to create. I will choose 5 in this example. Leave the default of creating new AD computer accounts. 108. Choose the OU you want your new VMs to be put in. You can also choose the naming scheme for the new VMs at this point. You could use something like “VM-ACCT###” for your Accounting VMs for example. Hit Next. 109. You will see the Summary screen. Hit Finish and your VMs will start to be created. The progress bar will show you the progress but you can also go to XenCenter and watch the VMs beign created. They will not be powered on by default since you haven’t instructed your DDC to do so yet. 110. Now go to your DDC and open up Desktop Studio. Under Machines, you will see your catalog and it will show there are 5 free machines that have not been assigned. 111. Double click on the catalog and you will see the 5 machines but their SIDs since they have not been powered on yet. 112. Click on Assignments in the left and create a new Desktop Group 113. Choose your Catalog, add all 5 machines, and hit Next 114. Add your users and hit Next 115. Admins should already be selected so hit Next 116. Choose a Display Name and Desktop Group Name. The Display Name will be shown to the end user in the Web Interface. The Desktop Group name is for within Desktop Studio. Hit Finish. 117. Now go to your Web Interface (or the DDC itself in this example). Login using an account you have assigned one of your VMs to. If it’s the only thing on your WI, the desktop will start booting up immediately. 118. Log into your new VM and create and you will see the Welcome message. Yes my wallpaper, quicklaunch, visualizations are different from default Win7 because I was playing with some profile customizations when I took these screenshots. Just ignore that. 119. Create a new text document on the desktop. Then log off. 120. You will notice in XenCenter the VM you were on is now being shutdown automatically. Basically getting it ready for the next user with a clean slate. 121. Click the desktop icon again on the WI and it will launch the VM again. It will likely be another VM entirely you will be logging onto, but of course it will look the same. You will notice your text document is gone now. Exactly as expected. That’s it! You are now up and running with your first provisioned desktops. Now you can create copies of the VHDs and begin customizing your images for different departments. Make sure the disks are in private mode when making your changes. You can also use the versioning feature for little changes to the images like Windows Updates. More on this later. SETTING UP WRITE CACHE So Write Cache is that big scary thing that can make or break your PVS implementation. Where you put it makes a world of difference. There are several options available where write cache can be stored. Most people opt for caching on a hidden local drive on the VM i.e. on your XenServer local disks or direct attached storage on the XenServer. It’s cheap and it works well for most implementations. Keep in mind it is not shared when you do this. Citrix has a good article called “How to Add a Persistent Volume to Your Provisioned Virtual Machine in XenServer” located here: http://support.citrix.com/article/CTX125590 and another excellent blog post here on PVS write cache size considerations: http://blogs.citrix.com/2011/10/06/pvs-write-cache-sizing-considerations/ So in our example so far, I had created the vDisk to leave the write cache on the PVS server. You can put the vDisk in private mode and skip directly to 127 if you like. But I want to leave old vDisk and provisioned desktops intact as an example and create a completely new vDisk and set of provisioned desktops with write cache on the XenServers instead. So we’re going to create a new vDisk from the old vDisk and then attach the new write cache drive to that. This is pretty straight forward but if you need more screenshots, leave a comment and I’ll take some: 122. Go to your Store, copy the .vhd file, paste it in the same location. Call the new VHD file whatever you like. 123. In the PVS Console, right click Store and click “Add or Import Existing vDisks. Search the store and add the vDisk you just created. 124. Under properties, make sure to enable “Enable Active Directory machine account password management” and KMS Service because they will likely not be checked when importing just the vhd. 125. Make sure the vDisk is in private mode 126. Go to your device collection and assign the vdisk to a device. You can use the original VM you were using to build out the Windows 7 image. Make sure it is set to boot from vDisk. 127. Go to XenCenter, click the Storage tab on your VM, and hit Add. You can name it something like “Win7MSDNBaseISO-WC”. We will leave the size as 10 GB. That’s a pretty decent size for a Windows 7 box rebooted once a week. Then hit Add. 128. Ensure the new disk was created with position 1. Position 0 should be your c: drive. 129. Now power on the VM, booting from the DVD and with the PVS boot disk in the drive. You will notice that Windows has detected a new drive under Disk Management. Initialize it. 130. Right click the new disk, New Simple Volume, choose the full size of the drive, assign it z:, and format it as NTFS, label the volume “Write Cache”, then hit Finish on the confirmation page to format it. 131. Shut down the VM. Detach the c:, leaving only the 10 GB z:. Copy it. Rename it to a template name, then hit Convert to template. 132. Go to your PVS console, under Store, and switch the vDisk to Standard Image and under Cache type, switch it to “Cache on device hard drive” and hit OK. 133. Go to your Site in the PVS Console and run through the XenDesktop setup wizard again like you did before but using your new template. Also go to your DDC and setup your desktop group, assignments, etc. like before but create a new desktop group so you know which ones are the new “local write cache” machines. 134. Launch one of your new VMs. You will see the Z: now called “Write Cache”. Also on the XenServer under local storage, you will see 10 GB drives created for all your VMs. MAINTAINING YOUR VDISKS Never update XenServer Tools in a vDisk after you have installed the PVS Target. It will destroy it. The PVS Target software talks to the XenServer Tools software and if it changes, the whole thing falls apart. In my experience, even changing hardware settings like the NIC order can cause all sorts of bad behavior. The best thing to do is build a new image and vDisk if you need to update XenServer Tools. Other than that, you can put your vDisk in private mode and update anything else like normal, including Citrix Receiver. When doing little changes to a VM, take advantage of versioning. Little changes being stuff like Windows Updates, app updates, etc. If installing a giant application like Photoshop or AutoCAD or something, you’ll probably want to merge soon since the reads would be happening all over your disk for something that large. I hope this post has been helpful to you. As you can see at over 130+ steps, there is a lot to know when deploying PVS with XenDesktop. Deploying with XenApp is mostly the same until you get to the OS and I can cover all that in another post. If you have any questions, comments, or tips please let me know in the comments section below. If I left out something, please let me know too. ## How to fix the Error 30105 Citrix servers do not trust the server message in XenDesktop 5.5 January 17th, 2012 No comments When you login to your web interface and launch a new desktop, it might not launch and you might get this error in the application event log on the server:  Source: Citrix Web Interface Event ID: 30105 The Citrix servers do not trust the server. This message was reported from the XML Service at address http://localhost/scripts/wpnbr.dll [com.citrix.xml.NFuseProtocol.RequestAddress]. [Unique Log ID: xxxxxxxx]  In previous versions of Presentation Server, the way to set the XML Trust was to go to your Access Management Console and edit the Properties of the each server. There would be an “XML Service” property near the bottom in the left navigation you could click on. Check the “Trust XML requests sent to the XML Service” box and hit OK. For the whole farm, open up the farm Properties and go to Farm-wide > XenApp > General and check the “XML Service DNS address resolution” check box and hit OK. In previous versions of XenDesktop, you could go to your DDC and open up the Delivery Services console, right click on the farm properties go to Farm-wide > Desktop Delivery Controller > General and check the “XML Service DNS address resolution” and hit OK. In XenApp 6.0, 6.5, etc. you need to open Delivery Services Console or AppCenter and go to Policies and hit the Computer tab. Edit the Unfiltered policy and find the XML Service near the bottom in the left hand navigation. When you click it, you will see “Trust XML requests”. Hit Add and set it to “Enabled” so the Citrix XML Service will trust requests sent to it and hit OK. All this is from memory so if I missed something, let me know. I don’t have any consoles in front of me for the different environments at the moment except Desktop Studio or I would post screenshots for you. Let me know if you need them and I’ll take some screenshots this evening when I have a bit more time. And now for the whole reason for this blog post. In XenDesktop 5.0, 5.5, etc., the Desktop Studio console does not have this option if you look in the Unfiltered policy under HDX Policy. That’s a totally different policy. You have to set the XML Trust via PowerShell now. So to set an XML Trusts policy, open up PowerShell and if you haven’t already, add the Citrix snapin which will give you the ability to use the Citrix cmdlets: asnp citrix.* Now enable the XML Trust: Set-BrokerSite -TrustRequestsSentToTheXmlServicePort$true

Done, if everything goes well, you should see no confirmation or error messages like this:

Now if you logout of your web interface, log back in, then attempt to launch the desktop, it should come right up and there are no more errors in your application event log.

Categories: Tags:

## Thoughts on Desktop Virtualization seminar with Brian Madden

I was able to attend a Desktop Virtualization seminar by Brian Madden several weeks ago. It was a small group of attendees so it was great to interact at a personal level with him and some of the other speakers and get some questions answered. What I loved the most about this seminar was that a lot of the discussion was vendor agnostic, so I didn’t have a ton of marketing pushed at me. That’s a welcome change because I don’t want to hear sales talk, I want to hear the raw facts from other engineers on what works, what doesn’t, and why.

A lot of what was covered is stuff most everyone working with VDI may already know. I’m not going to transcribe all my notes from the seminar. But some key takeaways that I felt were important were the following:

1. VDI projects and hardware refreshes are driven by different factors than last year this time. April 8, 2014 (End of Support, patches, hotfixes, etc. for Windows XP) is looming and many IT departments are concentrating more on hardware/Windows 7 migrations than they are on VDI projects. Last year many companies were trying to do both since these projects usually go hand in hand. Many companies that are still doing POCs or extending their testing phases are now starting to feel a time crunch. Because of this, many companies are giving priority to the refreshes and letting the VDI projects become a secondary project. That’s not to say VDI is not important, it’s just that many companies need to prioritize resources and personnel and choosing to allocate these at the refreshes. It’s funny because this has been happening all around me and to friends at their companies but I didn’t fully realize how industry wide this shift of priorities was until Brian said it out loud. So the takeaway is, get your refreshes completed first if you don’t have enough resources to handle both. You DO NOT want to get caught in 2014 with any XP machines on your network or something seriously needs to be reevaluated at your company. And it may end up being your job if you don’t drive the initiative to get your refreshes done well ahead of this date.

2. With all the different types of desktop technologies out there now:

DATA CENTER BASED INFRASTRUCTURE
-Remote Desktop Session Host (Terminal Server)
-VDI (Citrix XenDesktop, VMware View, etc)

CLIENT BASED INFRASTRUCTURE
-Client VM – Hypervisor on baremetal client (Citrix XenClient, VMware View Local Mode, Virtual Computer NxTop, MokaFive, Virtual Bridges VERDE, etc)
-Client VM – Hypervisor on existing OS (VMware Workstation, Virtual PC, Fusion, Parallels, XP Mode, etc.)
-OS Streaming

Companies are having a hard time trying to decide what is best for their users. One of the slides shown showed the enumeration of these technologies into the environment and I swear, it was like a pack of Skittles. There are so many directions to go and for many different reasons but you really have to factor everything or you are going to have end up with one of these Skittles environments over time. The biggest take away here is that there is no ONE solution that is the BEST. Your infrastructure might be a few of these. But don’t let it run away from you, plan it well from the get go. Pretty much common sense to anyone working with VDI already.

3. So my co-worker asked how do you plan your VDI environment? How do you know what is best? Brian recommended a couple of products that can help you:

-LakeSide Solutions VMP – pulls stats on your environment and spits out a report that tells you which users are good candidates for VDI vs. Terminal Server vs. staying on a traditional desktop.

http://www.lakesidesoftware.com/systrack_vmp.aspx

-Liquidware Labs – does a lot of the same and comes with 30 day trial

http://liquidwarelabs.com/products/stratuspherefit.asp

Another really good tool he suggested that was good for looking at the app compatibility and testing closer was App-DNA AppTitude. It does automated testing against 68,000 data points. They were acquired by Citrix just a couple of weeks ago:

ChangeBase offers something similar and they were acquired by Quest just a few weeks ago:

http://www.changebase.com/

4. User workspace management. Let’s face it, any large VDI deployment across all the different infrastructure technologies above + across all the different OSes is going to be a nightmare if you don’t have some way of managing the user workspace. Brian talked about the concept of layering hardware, OS, application, and users. Not unfamiliar to anyone that has worked with VDI. He talked about 3rd parties like AppSense, RES, LiquidWare Labs, etc. vs. what’s being offered from Citrix, Microsoft, and VMware. I’m not going to go too much into this because I plan on writing an article about user workspace management and a comparison of the different options soon. But just know that this is a big point that will break or make your VDI project.

These were some of my main takeaways from the seminar without going into too much detail. There was a lot of information covered and I have to thank Brian & TechTarget for putting this on. Doesn’t matter if you’re just in the planning stages of your VDI project or if it’s been running great for years, I guarantee you will learn something new or what’s coming down the pipe in the VDI world at one of these seminars. You can sign up for one in your city here:

http://events.techtarget.com/desktopvirtualization/

Categories: Tags:

## Using Firefox in an environment with roaming profiles

August 2nd, 2011 1 comment

By default, Firefox stores it’s profile cache in "C:\Documents and Settings\yourusername\Application Data\Mozilla\Firefox\Profiles". This can be problematic when using roaming profiles with a limited amount of profile storage space due to quotas. As you add extensions, it grows even bigger. This is a big problem in XenApp/XenDesktop/View and other VDI environments using roaming profiles. You’ll soon start getting errors saying you are almost out of profile storage space or that you have exceeded your profile storage space. Something like this (note I just grabbed this screenshot from a Google Image Search, you would normally see a bunch of Mozilla Firefox related files in there eating up the space):

The solution is to move the profile out of the user folder and into another local folder or onto a network drive/home folder, thus reclaiming the profile storage space. For example, I created "c:\FireFoxProfile" to house the profile. Here is what you need to do to begin using this folder:

1. Edit "C:\Documents and Settings\yourusername\Application Data\Mozilla\Firefox\profiles.ini" in Notepad and change:

IsRelative=1

to

IsRelative=0

What this does is allow you to use an explicit path that you specify for the profile.

2. Change the next line from:

Path=Profiles/xxxxxxx.default

to

Path=c:\FireFoxProfile\xxxxxxx.default

3. Save profile.ini and restart Firefox. You will notice that immediately, the new profile folder is populated. Keep in mind when you open Firefox for the first time, it will be like a brand new install and you will lose all of your bookmarks, extensions, customizations, etc. unless you restore them from the old path.

4. You can delete everything in your old profile path once you have Firefox working in the new profile path. This will immediately reclaim your roaming profile storage space.

NOTE: If deploying to the entire corporation, there are other methods to centrally manage Firefox and control the deployment. This solution is good for the one off users though.

Categories: Tags:


text:
# Proof to show function f satisfies Lipschitz condition when derivatives f' exist and are continuous

The question is as follows:

Given a function $f$, 2 known information:
(1) $f'(x)$ exist
(2) $f'(x)$ are continuous

Goal: function $f$ satisfies Lipschitz condition on any bounded interval $[a,b]$

Here is my attempt:

1/ Recall Lipschitz condition: a function $f$ satisfies Lipschitz if there is a real number $N$ such that $|f(x) – f(y)| \leq N |x – y|$

2/ First, I plan to show this :

(*) Knowing $f'(x)$ is continuous at any point $x \implies f'(x)$ is
bounded at some neighborhood about $x$

Using definition of continuity on $f'(x)$, I say that for any $\epsilon > 0$, there is $\delta > 0$ such that for any $y$, we have $|x – y| < \delta => |f'(x) – f'(y)| < \epsilon$.

After some works, I realize that $f'(y)$ is in the neighborhood of $(f'(x) – \epsilon, f'(x) + \epsilon)$.

So if I let my $N = max${$f'(x) + \epsilon, -f'(x) + \epsilon$}, I reach the conclusion that $f'(x)$ is bounded (at least below)

3/ Then, I plan to use (*) to say this :

If function $f$ has a derivative $f’$ such that $f’$ is bounded by
some number K $\implies f$ satisfies Lipschitz condition on any interval
[a,b]

I plan to use the Mean Value Theorem, provided that by (*), there is a derivative $f'(x) < K$ where $x$ is in between some $x_1$ and $x_2$ in $[a,b]$

Would someone please check if my ideas are correct?

I feel very shaky about part 2 of my work. If the derivative is bounded, then I think the proof will be way easier. But to conclude that continuous $\implies$ bounded, I’m not sure if I can claim such thing .

#### Solutions Collecting From Web of "Proof to show function f satisfies Lipschitz condition when derivatives f' exist and are continuous"

1) Continuous function $g$ in a compact interval $[a,b]$ implies $g$ bounded in $[a,b]$. (This part I make a bit more general than yours)

Consider the set $X=\{x\in[a,b]: g|[a,x] \text{ is bounded }\}$. Show that $a\in X$ and $\sup X\in X$ then $b=\sup X$ so $b\in X$.

2) Bounded derivative implies Lipschitz.

If $|f'(x)|\leq K$ for all $x\in[a,b]$, in particular for any $x,y\in[a,b]$ such that $x\neq y$ we have

$$\left|\dfrac{f(x)-f(y)}{x-y}\right|=|f'(c)|\leq K$$

for some $c\in[x,y]$ by MVT. Then $|f(x)-f(y)|\leq K|x-y|$.

format: plain


text:
# Setting Qemu Architecture

I have a situation where I need to emulate some PPC VMs on Intel hardware, and would like to use OpenStack to allow my engineering teams to spin up their own instances of these PPC VMs whenever they need to. I'm having a hard time figuring out how to create a flavor that will correctly call the PPC version of Qemu to start these VMs. Here's what I've done so far...

• Installed the qemu-system-ppc binary into the path and restarted libvirtd. Used "virsh capabilities" to verify ppc is listed as a CPU for guests.
• Restarted the openstack-nova-compute service, and then looked at the database to verify the capabilities are coming in correctly from libvirt on all of the hosts:

nova=# SELECT hypervisor_hostname,supported_instances FROM compute_nodes; hypervisor_hostname | supported_instances
---------------------+--------------------------------------------------------------------------------------------------------------------------------
http://host1.example.com | [["i686", "qemu", "hvm"], ["i686", "kvm", "hvm"], ["ppc", "qemu", "hvm"], ["x86_64", "qemu", "hvm"], ["x86_64", "kvm", "hvm"]]
http://host2.example.com | [["i686", "qemu", "hvm"], ["i686", "kvm", "hvm"], ["ppc", "qemu", "hvm"], ["x86_64", "qemu", "hvm"], ["x86_64", "kvm", "hvm"]]
http://host3.example.com | [["i686", "qemu", "hvm"], ["i686", "kvm", "hvm"], ["ppc", "qemu", "hvm"], ["x86_64", "qemu", "hvm"], ["x86_64", "kvm", "hvm"]]

• Verified that I can launch instances using the standard flavors, without any modifications.
• Created two new flavors - p1.tiny (for PPC) and i1.tiny (for i686). PPC is really what I need to get working, but figured I would try i686, too, since that is built-in to KVM, just in case it was some sort of issue with my PPC binary.
• For the p1.tiny flavor, tried various incantations of flavor-key set for "cpu_arch=ppc", "arch=ppc", "architecture=ppc", "hw:cpu_arch=ppc", etc., and I consistently get the following when trying to launch an instance of that flavor: No valid host was found. There are not enough hosts available.
• For the i1.tiny flavor, also tried various options - cpu_arch=i686, arch=i686, etc. - and got similar results.

If I had to venture a guess, I would say I'm telling the instance that it is supposed to run on hardware of that architecture, rather than telling it to request a certain Qemu hardware type, and I'm probably not getting the right key/value pair set. If someone can point me in the direction of the correct key/value for making a flavor emulate a certain CPU using the Qemu capabilities on those hosts, I'd really appreciate it.

edit retag close merge delete

Were you able to make any progress on this?

( 2017-02-22 12:38:16 -0500 )edit

Sort by » oldest newest most voted

Your flavor looks correct. It's just that you don't have any hypervisors (nova-compute nodes) that can run instances with the desired ppc architecture. Try configuring (some of) your compute nodes with cpu_mode set to custom and an appropriate cpu_model in the [libvirt]section of nova.conf. We do this here to emulate slightly different (restricted) models of Intel x86 CPUs compared to the actual hardware; I'm not sure whether this mechanism is general enough to select a different CPU architecture.

more

The output I posted above from the DB table indicates that libvirt and OpenStack are seeing the PPC arch of Qemu. I was able to push a little further by setting an image architecture to ppc, but now the libvirt config is causing problems - some options pushed by OpenStack don't work with ppc qemu.

( 2016-07-06 23:21:56 -0500 )edit


text:
## L. Dufloux

created by dufloux on 10 Feb 2020

[BibTeX]

Preprint

Inserted: 10 feb 2020
Last Updated: 10 feb 2020

Year: 2019

ArXiv: 1901.07247 PDF

Abstract:

We state strong Marstrand properties for two related families of fractals in Heisenberg groups $\mathcal{H}^d$: limit sets of Schottky groups in good position, and attractors of self-similar IFS enjoying the open set condition in the quotient $\mathcal{H}^d/Z$. For such a fractal $X$, we show that the dimension of $\pi_x(X)$ does not depend on $x \in \mathcal{H}$, where $\pi_x$ denotes the radial projection along chains passing through $x$. This follows from a local entropy averages argument due to Hochman and Shmerkin.

Keywords: Hausdorff dimension, Marstrand Theorem

Credits | Cookie policy | HTML 5 | CSS 2.1


text:
# nth Term of an Arithmetic Sequence – Step-by-step

The terms of an arithmetic sequence can be obtained by adding a number called the common difference to the previous term. Considering this, we can get a formula for the general term of an arithmetic progression, which uses the value of an initial term, the common difference, and the position of the required term.

Here, we will look at the formula that we can use to find the general term of an arithmetic sequence. Then, we will apply this formula to solve some examples.

##### ALGEBRA

Relevant for

Learning to find the general term of an arithmetic sequence.

See steps

##### ALGEBRA

Relevant for

Learning to find the general term of an arithmetic sequence.

See steps

## Steps to find the nth term of an arithmetic sequence

Consider the sequence of numbers 1, 3, 5, 7, … Each term in this sequence is obtained by adding 2 to the previous term. This is an example of an arithmetic sequence.

Arithmetic sequences are sequences in which any term is formed from the previous term by adding a certain number called the common difference.

Generally, the terms of an arithmetic sequence can be obtained using the following formula:

$$a_{n}=a+(n-1)d$$

where,

• $latex a$ is the first term of the sequence.
• $latex d$ is the common difference.
• $latex n$ is the position of the term.

Then, we can take the following steps to find the general term of an arithmetic sequence.

#### 2. Find the value of the common difference.

The common difference is found by subtracting a term from the sequence by the previous term.

#### 3. Use the formula for the general term.

Substitute the values of the first term, the common difference, and the position of the term into the formula $latex a_{n}=a+(n-1)d$.

## Solved examples of the nth term of an arithmetic sequence

### EXAMPLE 1

What is the value of the 6th term of an arithmetic sequence that has an initial term of 3 and a common difference of 2?

In this case, we have the values of the first term and the common difference given directly. Also, we want to find the 6th term, so we have:

• $latex a=3$
• $latex d=2$
• $latex n=6$

Using these values into the formula for the general term and solving, we have:

$latex a_{n}=a+(n-1)d$

$latex a_{6}=3+(6-1)2$

$latex a_{6}=3+(5)2$

$latex a_{6}=3+10$

$latex a_{6}=13$

### EXAMPLE 2

If the first term of an arithmetic sequence is 5 and its common difference is 4, find the value of the 8th term.

Similar to the previous example, we have the values of the first term and the common difference given in the statement. Thus, we have:

• $latex a=5$
• $latex d=4$
• $latex n=8$

Using these values with the formula for the general term, we have:

$latex a_{n}=a+(n-1)d$

$latex a_{8}=5+(8-1)4$

$latex a_{8}=5+(7)4$

$latex a_{8}=5+28$

$latex a_{8}=33$

### EXAMPLE 3

The first four terms of an arithmetic sequence are 3, 6, 9, 12. Find the 10th term of the sequence.

In this case, we know the first four terms, so we know the first term directly.

To find the common difference, we can subtract any term by its previous term. For example, $latex 12-9=3$. Then, we have:

• $latex a=3$
• $latex d=3$
• $latex n=10$

Using the formula for the general term, we have:

$latex a_{n}=a+(n-1)d$

$latex a_{10}=3+(10-1)3$

$latex a_{10}=3+(9)3$

$latex a_{10}=3+27$

$latex a_{10}=30$

### EXAMPLE 4

Find the 10th term of the arithmetic sequence that starts with the terms 9, 5, 1, …

Similar to the previous example, we know the first term, and we have to find the common difference. In this case, we have $latex 1-5=-4$. Then,

• $latex a=9$
• $latex d=-4$
• $latex n=10$

We have a negative common difference, but we simply have to apply the formula for the general term:

$latex a_{n}=a+(n-1)d$

$latex a_{10}=9+(10-1)(-4)$

$latex a_{10}=9+(9)(-4)$

$latex a_{10}=9-36$

$latex a_{10}=-27$

### EXAMPLE 5

The first four terms of an arithmetic sequence are 5, 11, 17, 23. Find the 30th term.

The common difference of the given sequence is $latex 23-17=6$. Therefore, we have the following values:

• $latex a=5$
• $latex d=6$
• $latex n=30$

Applying the formula, we have:

$latex a_{n}=a+(n-1)d$

$latex a_{30}=5+(30-1)6$

$latex a_{30}=5+(29)6$

$latex a_{30}=5+174$

$latex a_{30}=179$

### EXAMPLE 6

Find the 16th term of the arithmetic sequence starting with the numbers 20, 17, 14, …

The common difference of the given sequence is $latex 14-17=-3$. Therefore, we have the following values:

• $latex a=20$
• $latex d=-3$
• $latex n=16$

Applying the formula, we have:

$latex a_{n}=a+(n-1)d$

$latex a_{16}=20+(16-1)(-3)$

$latex a_{16}=20+(15)(-3)$

$latex a_{16}=20-45$

$latex a_{16}=-25$

You can explore additional examples of the nth term of an arithmetic sequence in this article: nth Term of an Arithmetic Sequence – Examples and Practice.

## nth term of arithmetic sequences – Practice problems

General term arithmetic sequences quiz
You have completed the quiz!

#### Find the 12th term of an arithmetic sequence that begins with the terms 15, 11, 7, …

Write the answer in the input box.

$latex a_{12}=$


text:
# Posts Tagged ‘ ACT6420-A2012 ’

## On Box-Cox transform in regression models

November 13, 2012
By
$Y_i=\beta_0+\beta_1 X_i+\varepsilon_i$

A few days ago, a former student of mine, David, contacted me about Box-Cox tests in linear models. It made me look more carefully at the test, and I do not understand what is computed, to be honest. Let us start with something simple, like a linea...

Read more »

## Why pictures are so important when modeling data?

October 31, 2012
By
$R^2$

(bis repetita) Consider the following regression summary,Call: lm(formula = y1 ~ x1)   Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.0001 1.1247 2.667 0.02573 * x1 0.5001 0.1179 4.241 0.00217 **...

Read more »


text:
# Dune Core Modules (2.6.0)

Dune::Grid< dim, dimworld, ct, GridFamily > Class Template Reference

Grid abstract base class. More...

#include <dune/grid/common/grid.hh>

## Classes

struct  Codim
A Traits struct that collects all associated types of one implementation. More...

## Exported constants

enum  { dimension =dim }
A constant that exports the template parameter dim. More...

enum  { dimensionworld =dimworld }
A constant that exports the template parameter dimworld. More...

## Exported types

typedef GridFamily::Traits::LeafGridView LeafGridView
type of view for leaf grid

typedef GridFamily::Traits::LevelGridView LevelGridView
type of view for level grid

typedef GridFamily::Traits::LeafIntersection LeafIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in the leaf view.

typedef GridFamily::Traits::LevelIntersection LevelIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in a level view.

typedef GridFamily::Traits::LeafIntersectionIterator LeafIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an leaf element (entity of codimension 0) with other leaf elements.

typedef GridFamily::Traits::LevelIntersectionIterator LevelIntersectionIterator
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an element (entity of codimension 0) with other elements on the same level.

typedef GridFamily::Traits::HierarchicIterator HierarchicIterator
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine, but not to modify, entities of codimension 0 that result from refinement of an entity of codimension 0.

typedef GridFamily::Traits::LevelIndexSet LevelIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent, numbering for entities on a grid level.

typedef GridFamily::Traits::LeafIndexSet LeafIndexSet
A type that is a model of Dune::IndexSet which provides a consecutive, but non persistent, numbering for entities in the leaf grid.

typedef GridFamily::Traits::GlobalIdSet GlobalIdSet
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entities in the grid. The numbering is unique over all processes over which the grid is partitioned. The numbering is not necessarily consecutive.

typedef GridFamily::Traits::LocalIdSet LocalIdSet
A type that is a model of Dune::IdSet which provides a unique and persistent numbering for all entities in the grid. The numbering is only unique in a single process and it is not necessarily consecutive.

typedef GridFamily::Traits::CollectiveCommunication CollectiveCommunication
A type that is a model of Dune::CollectiveCommunication. It provides a portable way for collective communication on the set of processes used by the grid.

typedef ct ctype
Define type used for coordinates in grid module.

## Size methods

int maxLevel () const
Return maximum level defined in this grid. Levels are numbered 0 ... maxLevel with 0 the coarsest level.

int size (int level, int codim) const
Return number of grid entities of a given codim on a given level in this process.

int size (int codim) const
Return number of leaf entities of a given codim in this process.

int size (int level, GeometryType type) const
Return number of entities per level and geometry type in this process.

int size (GeometryType type) const
Return number of leaf entities per geometry type in this process.

size_t numBoundarySegments () const
returns the number of boundary segments within the macro grid More...

## Views

LevelGridView levelGridView (int level) const
View for a grid level for All_Partition.

LeafGridView leafGridView () const
View for the leaf grid for All_Partition.

const GlobalIdSetglobalIdSet () const
return const reference to the grids global id set

const LocalIdSetlocalIdSet () const
return const reference to the grids local id set

const LevelIndexSetlevelIndexSet (int level) const
return const reference to the grids level index set for level level

const LeafIndexSetleafIndexSet () const
return const reference to the grids leaf index set

void globalRefine (int refCount)
Refine the grid refCount times using the default refinement rule. More...

bool mark (int refCount, const typename Codim< 0 >::Entity &e)
Marks an entity to be refined/coarsened in a subsequent adapt. More...

int getMark (const typename Codim< 0 >::Entity &e) const
returns adaptation mark for given entity More...

To be called after entities have been marked and before adapt() is called. More...

Refine all positive marked leaf entities, coarsen all negative marked entities if possible. More...

To be called after grid has been adapted and information left over by the adaptation has been processed. More...

## Parallel data distribution and communication

const CollectiveCommunicationcomm () const
return const reference to a collective communication object. The return type is a model of Dune::CollectiveCommunication.

Re-balances the load each process has to handle for a parallel grid,. More...

template<class DataHandle >
Re-balances the load each process has to handle for a parallel grid and moves the data. More...

template<class EntitySeed >
Codim< EntitySeed ::codimension >::Entity entity (const EntitySeed &seed) const
obtain Entity from EntitySeed.

GridImp & asImp ()
Barton-Nackman trick.

const GridImp & asImp () const
Barton-Nackman trick.

## Detailed Description

### template<int dim, int dimworld, class ct, class GridFamily> class Dune::Grid< dim, dimworld, ct, GridFamily >

Grid abstract base class.

This class is the base class for all grid implementations. Although no virtual functions are used we call it abstract since its methods do not contain an implementation but forward to the methods of the derived class via the Barton-Nackman trick.

Template Parameters
 dim specifies the dimension of the grid. dimworld specifies the dimension of the surrounding space, this can be different from dim, if the grid is defined on a manifold . ct field type of the world vector space. GridFamily traits class providing all types associated with the grid implementation.

## ◆ anonymous enum

template<int dim, int dimworld, class ct , class GridFamily >
 anonymous enum

A constant that exports the template parameter dim.

Enumerator
dimension

The dimension of the grid.

## ◆ anonymous enum

template<int dim, int dimworld, class ct , class GridFamily >
 anonymous enum

A constant that exports the template parameter dimworld.

Enumerator
dimensionworld

The dimension of the world the grid lives in.

## Member Function Documentation

template<int dim, int dimworld, class ct , class GridFamily >
 bool Dune::Grid< dim, dimworld, ct, GridFamily >::adapt ( )
inline

Refine all positive marked leaf entities, coarsen all negative marked entities if possible.

\return true if a least one entity was refined

The complete adaptation process works as follows:

- mark entities with the mark() method
- if preAdapt() returned true: possibly save current solution
- if adapt() returned true: possibly interpolate the (saved) solution

## ◆ getMark()

template<int dim, int dimworld, class ct , class GridFamily >
 int Dune::Grid< dim, dimworld, ct, GridFamily >::getMark ( const typename Codim< 0 >::Entity & e ) const
inline

returns adaptation mark for given entity

Parameters
 [in] e Entity for which adaptation mark should be determined
Returns
int adaptation mark currently set for given Entity e

## ◆ globalRefine()

template<int dim, int dimworld, class ct , class GridFamily >
 void Dune::Grid< dim, dimworld, ct, GridFamily >::globalRefine ( int refCount )
inline

Refine the grid refCount times using the default refinement rule.

This behaves like marking all elements for refinement and then calling preAdapt, adapt and postAdapt. The state after globalRefine is comparable to the state after postAdapt.

template<int dim, int dimworld, class ct , class GridFamily >
 bool Dune::Grid< dim, dimworld, ct, GridFamily >::loadBalance ( )
inline

Re-balances the load each process has to handle for a parallel grid,.

Returns
True if the grid has changed.

template<int dim, int dimworld, class ct , class GridFamily >
template<class DataHandle >
 bool Dune::Grid< dim, dimworld, ct, GridFamily >::loadBalance ( DataHandle & data )
inline

Re-balances the load each process has to handle for a parallel grid and moves the data.

Parameters
 data A data handle telling the method which data should be communicated and how. Has to adhere to the interface describe by CommDataHandleIf just like the data handle for the communicate methods.
Returns
True if the grid has changed.

## ◆ mark()

template<int dim, int dimworld, class ct , class GridFamily >
 bool Dune::Grid< dim, dimworld, ct, GridFamily >::mark ( int refCount, const typename Codim< 0 >::Entity & e )
inline

Marks an entity to be refined/coarsened in a subsequent adapt.

Parameters
 [in] refCount Number of subdivisions that should be applied. Negative value means coarsening. [in] e Entity that should be marked
Returns
true if Entity was marked, false otherwise.

## ◆ numBoundarySegments()

template<int dim, int dimworld, class ct , class GridFamily >
 size_t Dune::Grid< dim, dimworld, ct, GridFamily >::numBoundarySegments ( ) const
inline

returns the number of boundary segments within the macro grid

Returns
number of boundary segments within the macro grid

template<int dim, int dimworld, class ct , class GridFamily >
 void Dune::Grid< dim, dimworld, ct, GridFamily >::postAdapt ( )
inline

To be called after grid has been adapted and information left over by the adaptation has been processed.

This removes the isNew flags of the elements from the last adapt call.

template<int dim, int dimworld, class ct , class GridFamily >
 bool Dune::Grid< dim, dimworld, ct, GridFamily >::preAdapt ( )
inline

To be called after entities have been marked and before adapt() is called.

This sets the mightVanish flags of the elements for the next adapt call.

Returns
true if an entity may be coarsened during a subsequent adapt(), false otherwise.

The documentation for this class was generated from the following file:
|  Legal Statements / Impressum  |  generated with Hugo v0.80.0 (Dec 6, 23:32, 2022)


text:
# Is a point in a triangle?

The calculator determines if an arbitrary point lies inside 2D triangle. The triangle is defined by 3 cartesian coordinate pairs.

The calculator below determines if a given point is inside a 2D triangle. The calculator uses a simple algorithm based on vector cross-product features. The algorithm detailed description is right behind the calculator.

#### Point in triangle

Digits after the decimal point: 2
Is point in triangle

AB x AP

BC x BP

CA x CP

## A point inside a triangle. The algorithm description

3-dimensional vectors a and b cross product result for the right orthonormal basis is defined as:
$\mathbf {a} \times \mathbf {b} =(a_{y}b_{z}-a_{z}b_{y},\;a_{z}b_{x}-a_{x}b_{z},\;a_{x}b_{y}-a_{y}b_{x})$ [1].
Cross product is anticommutative:
$\mathbf {a} \times \mathbf {b} =-\mathbf {b} \times \mathbf {a}$
It is an important feature to solve the point and triangle problem.

To determine if a point P is inside a triangle ABC, we compute 3 cross products: ABxAP, BCxBP, and CAxCP. Since we are in 2D space, the third vector coordinate (z) equals 0. According to the formula [1], we don't need to calculate the first two coordinates because the result x,y coordinate is always 0 because the z coordinate is 0 (the result vector is perpendicular to the ABC plane). The sign of remained (z) coordinate depends on the relative position of the vectors. If the first vector appears on the right of the second one, the z coordinate is positive; if the first vector appears on the left of the second one, the z coordinate is negative; otherwise (both vectors point to the same direction), the result is 0.
The remaining step to solving our problem is to analyze signs of the z coordinates. If we have both positive and negative results, then the point is outside the triangle; if we have only positive or only negative signs - the point is inside the triangle.
The following table illustrates all possible solutions.

Drawing Description

All results are negative or positive.
The point is inside the triangle.

One result is zero; the remaining ones are all positive or all negative.
The point lies on the side of the triangle.
If two results are zero, then the point coincides with a triangle vertex.

We have both positive and negative results.
The point is outside the triangle.
URL copied to clipboard

#### Similar calculators

PLANETCALC, Is a point in a triangle?


text:
## Pie Charts Questions - 1

#Directions (Q1 to Q5): Read the following fallowing information carefully and answer the questions given below it.

Suppose in the given year the Income of the firm is Rs.12,00,000 and total Expenditure comprises 80% of the income, then what amount is spent on salaries ?
• Rs.2,80,000
• Rs.3,00,000
• Rs.3,60,000
• Rs.2,88,000
• Rs.2,68,000
Explanation

Expenditure = 1200000 $\displaystyle \times \frac{80}{100}$ = Rs.960000.

Salaries is 30% of total expenditure => 960000 $\displaystyle \times \frac{30}{100}$ = Rs.288000.

Workspace

If the Expenditure comprises 80% of the income then, which segment of Income is equal to the segment of Expenditure, in terms of monitory value ?
• Other Income = Service and Other Taxes
• Other Income = Other Expenses
• Audit Services = Salaries
• Accounting Services = Partners Commission
• Taxation Services = Partners Commission
Explanation

Accounting services = Partners commission.

Let income be Rs.100, expenditure = 80% of 100 = Rs.80

Accounting services comprise 20% of income then 20% of 100 = Rs.20.

Rs.20 is 25% of 80, the segment equal to 25% is partners commission ($\displaystyle \frac{20}{80} \times$ 100 = 25%)

Workspace

If Income in the last financial year [2014 â€“ 15] income of the firm was same as present year, and expenditure in the present year is 80% of the income, and that of previous year was 75% of the income, then by what percent profit is decreased in the present year ?
• 25%
• 5%
• 20%
• 16.66%
• 8%
Explanation

Let income of the firm in the present year be 100.

Then expenditure present year = 80 or 80%, previous year = 75 or 75%.

Income â€“ Expenditure = Profit.

Profit present year = 100 â€“ 80 = 20, last year = 100 â€“ 25 = 25

Difference = 25 â€“ 20 = 5 Â  [ Profit decreased by 5 ]

Decrease % = $\displaystyle \frac{5}{25} \times$ 100 = 20%.

Workspace

The firm has a policy to transfer 4% of its profits to Reserves, in the present year Rs.20,000 is transferred to Reserves, then the amount spent on Salaries is ?
• Rs.1,50,000
• Rs.1,20,000
• Rs.1,75,000
• Rs.1,80,000
• Rs.1,60,000
Explanation

The segment reserves = 5% of the expenditure which is equal to Rs.20000.

Salary = 30% of expenditure.

Salary = $\displaystyle \frac{20000}{5} \times$ 30 = Rs.120000.

Workspace

If the difference between the Other Expenses and Service tax is Rs.20,000, then expenditure on Rent & Electricity is ?
• Rs.15,000
• Rs.24,000
• Rs.60,000
• Rs.75,000
• Rs.66,000
Explanation

Service tax = 15%, Other expenses = 10%.

Difference = 15% - 10% = 5% = Rs.20000.

Rent & Electricity = 15% => $\displaystyle \frac{20000}{5} \times$15 = Rs.60000.

Workspace
#Directions (Q6 to Q10): Study the following Pie Chart and answer the questions given below it.

How many marks are scored by Student A in Maths ?
• 54
• 90
• 80
• 88
• 96
Explanation

Corresponding angle = 54o, Maximum marks in the subject = 100.

Then marks in Maths = $\displaystyle \frac{54}{360} \times$ 100 = 90 marks.

Workspace

How many marks are scored by Student B in Hindi ?
• 72
• 36
• 60
• 66
• 68
Explanation

Corresponding angle Hindi [Student B] = 36o.

Marks in Hindi = $\displaystyle \frac{36}{360} \times$ 100 = 60.

Workspace

How many marks are secured by Student B in Maths and English together ?
• 172
• 168
• 134
• 182
• 162
Explanation

Maths => 50.4o = $\displaystyle \frac{50.4}{60} \times$ 100 = 84.

English => 52.8o = $\displaystyle \frac{52.8}{60} \times$ 100 = 88.

Maths + English = 84 + 88 = 172.

[ OR ]

Corresponding angles => Maths + English = 50.4o + 52.8o = 103.2o

Marks in Maths + English = $\displaystyle \frac{103.2}{60} \times$ = 172.

Workspace

Difference between the marks scored by Student A and B in Computer Science is ?
• 4 marks
• 8 marks
• 10 marks
• 12 marks
• 6 marks
Explanation

Marks of A in Computer Science => corresponding angle = 43.2o.

=> $\displaystyle \frac{43.2}{60} \times$ = 72.

Marks of B in Computer Science.

=> $\displaystyle \frac{39.6}{60} \times$ = 66.

Difference = 72 â€“ 66 = 6 marks.

[OR]

Difference in angle = 43.2 â€“ 39.6 = 3.6o.

Difference in marks = $\displaystyle \frac{3.6}{60} \times$ 100 = 6 marks.

Workspace

Difference between the total marks obtained by Student A and Student B is ?
• 8 marks
• 10 marks
• 12 marks
• 4 marks
• 6 marks
Explanation

Total marks of A = Sum of angles = 283.2o

Total marks = $\displaystyle \frac{283.2}{60} \times$ 100 = 472.   [ OR ]   $\displaystyle \frac{283.2}{360} \times$ 600 = 472.

Student B sum of angles = 280.8o.

Total marks = $\displaystyle \frac{280.8}{60} \times$ 100 = 468.

Difference = 472 â€“ 468 = 4 marks.

Workspace

#### Practice Test Report

Descriptions Status
Attempted Questions
Un-Attempted Questions


text:
Jerry made the following contributions during 2010:

His synagogue (by check) $680 The Republican Party (by check) 180 The American Red Cross (by check) 150 His lodge for a holiday party 100 In addition, Jerry donated used furniture to the Salvation Army costing$2,000 with a fair market value of $400. Assuming Jerry has adjusted gross income of$45,000, has the necessary written acknowledgments, and itemizes deductions. Complete the Gifts to Charity section of Schedule A, what is Jerry’s deduction for 2010.


text: The kernel density estimation technique is a technique used for density estimation in which a known density function, known as a kernel, is averaged across the data to create an approximation. Die Kerndichteschätzung (auch Parzen-Fenster-Methode;[1] englisch kernel density estimation, KDE) ist ein statistisches Verfahren zur Schätzung der Wahrscheinlichkeitsverteilung einer Zufallsvariablen. ) x {\displaystyle k} Kernel density estimation is a really useful statistical tool with an intimidating name. M [23] While this rule of thumb is easy to compute, it should be used with caution as it can yield widely inaccurate estimates when the density is not close to being normal. ) On the uppermost line, shown in Figure 1, there are (from left to right): current time (hour:minute:second), uptime (hour:minute), number of active user IDs, and load average. In der nichtparametrischen Statistik werden Verfahren entwickelt, um aus der Realisierung einer Stichprobe die zu Grunde liegende Verteilung zu identifizieren. g ) die Bandbreiten ( σ ^ Looking for online definition of KDE or what KDE stands for? MISE (h) = AMISE(h) + o(1/(nh) + h4) where o is the little o notation. g numerically. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. ( where K is the kernel — a non-negative function — and h > 0 is a smoothing parameter called the bandwidth. By Syam Krishnan at Mon, 12/09/2013 - 01:38 . where: D m is the (weighted) median distance from (weighted) mean center. is a consistent estimator of {\displaystyle h} {\displaystyle 0<\alpha <{\tfrac {1}{2}}} ) Die Skalierung und ein Vorfaktor gewährleisten, dass die resultierende Summe wiederum die Dichte eines Wahrscheinlichkeitsmaßes darstellt. A natural estimator of IQR is the interquartile range. ) and A statistic summary, i.e. I picked the K not only because it is the letter before L, for Linux, I also liked the pun with CDE. It is very similar to the way we plot a histogram. 2 Announcements KDE.news Planet KDE Screenshots Press Contact Resources Community Wiki UserBase Wiki Miscellaneous Stuff Support International Websites Download KDE Software Code of Conduct Destinations KDE Store KDE e.V. > B. im Fußball) während der Spielzeit zugrunde. {\displaystyle \scriptstyle {\widehat {\varphi }}(t)} The Epanechnikov kernel is optimal in a mean square error sense,[5] though the loss of efficiency is small for the kernels listed previously. n {\displaystyle h>0} M {\displaystyle R(g)=\int g(x)^{2}\,dx} g Kernel density estimates are closely related to histograms, but can be endowed with properties such as smoothness or continuity by using a suitable kernel. ∫ eines fast beliebig zu wählenden Wahrscheinlichkeitsmaßes x Knowing the characteristic function, it is possible to find the corresponding probability density function through the Fourier transform formula. wurde dann eine Kerndichteschätzung durchgeführt. Der Kerndichteschätzer stellt eine Überlagerung in Form der Summe entsprechend skalierter Kerne dar, die abhängig von der Stichprobenrealisierung positioniert werden. 0 Look at these statistics when KDE is about to release a new version, because hopefully non-translated strings should not be present in your language. ∈ {\displaystyle {\tilde {f}}_{n}} Its kernel density estimator is. t In statistics, kernel density estimation (KDE) is a non-parametric way to estimate the probability density function (PDF) of a random variable. [1][2] One of the famous applications of kernel density estimation is in estimating the class-conditional marginal densities of data when using a naive Bayes classifier,[3][4] which can improve its prediction accuracy. Once we are able to estimate adequately the multivariate density $$f$$ of a random vector $$\mathbf{X}$$ by $$\hat{f}(\cdot;\mathbf{H})$$, we can employ this knowledge to perform a series of interesting applications that go beyond the mere visualization and graphical description of the estimated density.. = We can extend the definition of the (global) mode to a local sense and define the local modes: Namely, {\displaystyle f} In the other extreme limit definiert. One difficulty with applying this inversion formula is that it leads to a diverging integral, since the estimate The gaussian_kde estimator can be used to estimate the PDF of univariate as well as multivariate data. is the standard deviation of the samples, n is the sample size. Once the function ψ has been chosen, the inversion formula may be applied, and the density estimator will be. c https://de.wikipedia.org/w/index.php?title=Kerndichteschätzer&oldid=201632305, „Creative Commons Attribution/Share Alike“. Juli 2020 um 18:31 Uhr bearbeitet. 1 The grey curve is the true density (a normal density with mean 0 and variance 1). The most common optimality criterion used to select this parameter is the expected L2 risk function, also termed the mean integrated squared error: Under weak assumptions on ƒ and K, (ƒ is the, generally unknown, real density function),[1][2] What does KDE mean? Method for determining the smoothing bandwidth to use; passed to scipy.stats.gaussian_kde. 2 . where K is the Fourier transform of the damping function ψ. Then the final formula would be: where σ x {\displaystyle f} Mit verschiedenen Bandbreiten Die im Folgenden beschriebenen Kerndichteschätzer sind dagegen Verfahren, die eine stetige Schätzung der unbekannten Verteilung ermöglichen. {\displaystyle \lambda _{1}(x)} ~ ∈ Under mild assumptions, Ein bekanntes Verfahren ist die Erstellung eines Histogramms. Given the sample (x1, x2, …, xn), it is natural to estimate the characteristic function φ(t) = E[eitX] as. The curve is normalized so that the integral over all possible values is 1, meaning that the scale of the density axis depends on the data values. This application uses a local working copy of the KDE SVN repository to generate statistics about localization teams, which are then displayed using server-side PHP scripts. A kernel with subscript h is called the scaled kernel and defined as Kh(x) = 1/h K(x/h). ^ 1 In statistics, kernel density estimation (KDE) is a non-parametric way to estimate the probability density function of a random variable. ) from a sample of 200 points. The most common choice for function ψ is either the uniform function ψ(t) = 1{−1 ≤ t ≤ 1}, which effectively means truncating the interval of integration in the inversion formula to [−1/h, 1/h], or the Gaussian function ψ(t) = e−πt2. : +421 2 50 236 339 e-mail: info@statistics.sk Štatistiky Obyvateľstvo a migrácia Náklady práce Národné účty Spotrebiteľské ceny Odvetvové štatistiky Examples. > The bandwidth of the kernel is a free parameter which exhibits a strong influence on the resulting estimate. What does KDE stand for in Desktop? Among his concerns was that none of the applications looked, felt, or worked alike. Note that one can use the mean shift algorithm[26][27][28] to compute the estimator The summary statistics in the 1st row are computed merely to facilitate the creation of the table or computing the overlay Gaussian distribution function. Meanings of KDE in English As mentioned above, KDE is used as an acronym in text messages to represent Kernel Density Estimation. {\displaystyle m_{2}(K)=\int x^{2}K(x)\,dx} Representation of a kernel-density estimate using Gaussian kernels. The following are 30 code examples for showing how to use scipy.stats.gaussian_kde().These examples are extracted from open source projects. In der konkreten Situation des Schätzens ist diese Kurve natürlich unbekannt und soll durch die Kerndichteschätzung geschätzt werden.